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