我正在使用 Hibernate 验证器并尝试创建一个小实用程序类:
public class DataRecordValidator<T> {
public void validate(Class<T> clazz, T validateMe) {
ClassValidator<T> validator = new ClassValidator<T>(clazz);
InvalidValue[] errors = validator.getInvalidValues(validateMe);
[...]
}
}
问题是,为什么我需要Class<T> clazz
在执行时提供参数new ClassValidator<T>(clazz)
?为什么不能指定:
T
如ClassValidator<T>(T)
?validateMe.getClass()
如在ClassValidator<T>(validateMe.getClass())
当我尝试同时执行这两个选项时出现错误。
编辑:我明白为什么#1 不起作用。但我不明白为什么#2 不起作用。我目前在 #2 中遇到此错误:
cannot find symbol
symbol : constructor ClassValidator(java.lang.Class<capture#279 of ? extends java.lang.Object>)
location: class org.hibernate.validator.ClassValidator<T>
注意:Hibernate API 方法是(这里)