我有一个bean类
BeanClass {
<prop1>;
<prop2>;
<prop3>;
//getters and setters
...
}
和验证工具:
Validations {
static void notNull(Object value, ValidationResult result) {
if (...) {
...
}
}
static void doesNotExceedMaxLength(Object value, int max, ValidationResult result) {
if (...) {
...
}
}
我想生成如下的验证器 -
BeanValidator {
ValidationResult validate(BeanClass bean) {
ValidationResult validationResult = new ValidationResult();
//prop1, prop3 are mandatory...
notNull(bean.getProp1(), validationResult);
notNull(bean.getProp3(), validationResult);
//prop2 must not be more than 255 characters in length
doesNotExceedMaxLength(bean.getProp2(), 255, validationResult)
return validationResult;
}
}
在运行时查看bean类,决定哪些字段是强制的,哪些值不能超过某个数字。
如何与Byte Buddy一起做这件事?
答案 0 :(得分:0)
我认为您不想将Byte Buddy用于此目的。这就是反射API的用途。使用Byte Buddy不会给您任何性能优势,因为Byte Buddy不会创建任何源代码,您也不会进一步记录您的应用程序。
为什么要使用代码生成来实现这样的验证器?