如何在我的方法中传递MyClass.class作为参数?

时间:2019-02-19 12:09:10

标签: java class parameters

我正在努力在代码中使用元素作为参数。

对于我的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完成?

1 个答案:

答案 0 :(得分:4)

这应该有效。请注意,在引用类型时必须使用T,在引用any和其他方法所需的Class<?>值时必须使用createQuery

private <T> void selectAllFrom(Class<T> any) {
    CriteriaQuery<T> query = builder.createQuery(any)
}