Java 投下一组<;T>;按T级

Java 投下一组<;T>;按T级,java,casting,Java,Casting,我正在使用一个方法返回按已发送类铸造的对象 // 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);

我正在使用一个方法返回按已发送类铸造的对象

// 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);
}
//Student-Student=(Student)get(Student.class,19L);
学生=get(Student.class,19L);//工作正常
公共T get(类clazz,长id){
Object=hibernateTemplate.get(clazz,id);
返回原语.wrap(clazz).cast(object);
}
但是收藏的目的是什么呢? 我想调用一个方法,该方法总是将casted 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 ?
}
List List=get(Student.class);//错误
公共列表获取(类clazz){
DetachedCriteria=DetachedCriteria.forClass(clazz);
List List=hibernateTemplate.findByCriteria(标准);
返回???;//我应该从这里返回什么?
}
在最后一个方法中需要返回什么?

公共列表获取(类clazz){
public <T> List<T> get(Class<T> clazz) {
    DetachedCriteria criteria = DetachedCriteria.forClass(clazz);
    List<T> list = (List<T>)hibernateTemplate.findByCriteria(criteria);
    return list;
}
DetachedCriteria=DetachedCriteria.forClass(clazz); 列表=(列表)hibernateTemplate.findByCriteria(标准); 退货清单; }
您不想返回列表吗?如果它解释了您更改的内容和原因,这将是一个更好的答案。此外,该强制转换是不安全的,如果启用了所有警告,编译器将告诉您。我使用的是而不是。这有什么问题吗?@M.A.Khomeni。你可以用任何名字!