package cn.lili.common.validation; import cn.lili.common.validation.impl.EnumValuesValidator; import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.Target; import static java.lang.annotation.ElementType.*; import static java.lang.annotation.RetentionPolicy.RUNTIME; /** * 枚举值校验注解 * * @author Bulbasaur */ @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER}) @Retention(RUNTIME) @Documented @Constraint(validatedBy = {EnumValuesValidator.class}) public @interface EnumValue { String message() default "必须为指定值"; String[] strValues() default {}; int[] intValues() default {}; //分组 Class[] groups() default {}; //负载 Class[] payload() default {}; @Target({FIELD, METHOD, PARAMETER, ANNOTATION_TYPE}) @Retention(RUNTIME) @Documented @interface List { EnumValue[] value(); } }