我想为我的自定义约束验证器添加两个值,因为我有两个功能标志:
@JsonProperty(value = "name")
@BlockedWithoutEnabledFeatureFlag(feature = FeatureFlag.AAA, values = {"aaa", "bbb"})
@BlockedWithoutEnabledFeatureFlag(feature = FeatureFlag.BBB, values = {"ccc", "ddd"})
private String parameter;
其中:
@Constraint(validatedBy = {BlockedWithoutEnabledFeatureFlagValidator.class})
@Target({FIELD, PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@ReportAsSingleViolation
public @interface BlockedWithoutEnabledFeatureFlag {
String message() default "{validation.constraints.BlockedWithoutEnabledFeatureFlag.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
FeatureFlag feature();
String[] values() default {};
}
和实施:
public class BlockedWithoutEnabledFeatureFlagValidator implements ConstraintValidator<BlockedWithoutEnabledFeatureFlag, Object> {
private final FeatureFlagService featureFlagService;
private List<String> blocked;
private FeatureFlag feature;
@Override
public void initialize(BlockedWithoutEnabledFeatureFlag constraintAnnotation) {
blocked = Arrays.asList(constraintAnnotation.values());
feature = constraintAnnotation.feature();
}
@Override
public boolean isValid(Object value, ConstraintValidatorContext context) {
但是现在我得到了编译错误"重复注释".如何做到这一点?