【发布时间】:2010-01-15 21:07:42
【问题描述】:
我正在使用 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);
[...]
}
}
问题是,为什么我在执行new ClassValidator<T>(clazz)时需要提供Class<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 方法是 (here)
【问题讨论】:
标签: java generics hibernate-validator