我正在努力在代码中使用元素作为参数。
对于我的Hibernate API调用,我需要指定查询结果映射到的类。我不想做很多非常相似的小方法,而是想将其干燥。
我在这里有以下代码:
private void selectAllFrom(MyClass myclass) {
CriteriaQuery<MyClass> query = builder.createQuery(Myclass.class);
}
相反,我想将MyClass-Class作为通用参数,并使用如下方法:
private void selectAllFrom(Class<T> any) {
CriteriaQuery<Class<T>> query = builder.createQuery(Class<T>.class)
}
// usage:
// selectAllFrom(MyClass.class)
如何用Java完成?
答案 0 :(得分:4)
这应该有效。请注意,在引用类型时必须使用T
,在引用any
和其他方法所需的Class<?>
值时必须使用createQuery
。
private <T> void selectAllFrom(Class<T> any) {
CriteriaQuery<T> query = builder.createQuery(any)
}