1
我想从一个值上手动调用一个来自org.hibernate.validator.internal.constraintvalidators.
的Validator,因为我无法注释这个类。我做了什么,这是:实现用于验证的Java注释
LengthValidator validator = new LengthValidator();
validator.initialize(new Length() {
@Override
public Class<? extends Annotation> annotationType() {
return null;
}
@Override
public Class<? extends Payload>[] payload() {
return null;
}
@Override
public int min() {
return min == null ? defaultMin : min;
}
@Override
public String message() {
return null;
}
@Override
public int max() {
return max == null ? defaultMax : max;
}
@Override
public Class<?>[] groups() {
return null;
}
});
Boolean valid = validator.isValid(myValue.asText(), null));
但声纳不乐意:
lambda表达式和匿名类不应该有太多的行
于是,我就重构这个代码通过在这样的自定义类中实现@Length:
public class StringLength implements Length {
// All the methods overriden from @Length
}
但编译器com平原
注释类型长度不应被用作 StringLength
我怎样才能实现我想要做一个超接口?
事实上,我想验证无模式数据,我不想重写在Hibernate中完美工作的验证器。所以我不能使用XML配置,因为我不知道要验证的数据结构。这就是为什么我要构建注释并“动态”调用验证器的原因。我将尝试'AnnotationDescriptor';) – c4k 2015-04-07 10:55:25