通过T.class

时间:2016-10-21 19:29:40

标签: java casting

我正在使用一个方法返回根据发送的Class转换的对象。

// Student student = (Student) get(Student.class, 19L);
Student student = get(Student.class, 19L); // Working fine

public <T> T get(Class<T> clazz, Long id) {
    Object object = hibernateTemplate.get(clazz, id);
    return Primitives.wrap(clazz).cast(object);
}

但是收藏品呢? 我想从下面的方法调用一个总是返回已转换的List作为我传递的类的方法。

List<Student> list =  get(Student.class); // Error

public List<?> get(Class clazz) {
    DetachedCriteria criteria = DetachedCriteria.forClass(clazz);
    List<?> list = hibernateTemplate.findByCriteria(criteria);
    return ????; // What should I return from here ?
}

最后一种方法需要返回什么?

1 个答案:

答案 0 :(得分:3)

public <T> List<T> get(Class<T> clazz) {
    DetachedCriteria criteria = DetachedCriteria.forClass(clazz);
    List<T> list = (List<T>)hibernateTemplate.findByCriteria(criteria);
    return list;
}
相关问题