我有一个豆类
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做到这一点?
最佳答案
我认为您不想为此目的使用字节伙伴。这就是反射API的用途。使用Byte Buddy不会给您任何性能上的好处,并且由于Byte Buddy不会创建任何源代码,因此您也不会进一步记录您的应用程序。
您为什么要使用代码生成来实现这种验证器?