Java 类型列表的表达式需要未选中的转换才能符合列表<;学生>;,使用Hibernate条件时

Java 类型列表的表达式需要未选中的转换才能符合列表<;学生>;,使用Hibernate条件时,java,hibernate,unchecked-conversion,Java,Hibernate,Unchecked Conversion,我有一段代码给出了标题中提到的警告: List<Student> studentList = session.createCriteria(Student.class) .add(Restrictions.eq("indexNumber", indexNum)) .list(); List studentList=session.createCriteria(Student.class) .add(Restrictions.eq(“indexNumber”,inde

我有一段代码给出了标题中提到的警告:

List<Student> studentList = session.createCriteria(Student.class)
    .add(Restrictions.eq("indexNumber", indexNum))
    .list();
List studentList=session.createCriteria(Student.class)
.add(Restrictions.eq(“indexNumber”,indexNum))
.list();
我已经阅读了这篇文章,@BrunoDeFraine提供了一个很好的解决方案:

public static <T> List<T> castList(Class<? extends T> clazz, Collection<?> c) {
    List<T> r = new ArrayList<T>(c.size());
    for(Object o: c)
      r.add(clazz.cast(o));
    return r;
}
公共静态列表castList(c类){
List r=新的数组列表(c.size());
用于(对象o:c)
r、 增加(分类铸造(o));
返回r;
}
那么我可以这样做:

List<SyndEntry> entries = castList(SyndEntry.class, sf.getEntries());
List entries=castList(SyndEntry.class,sf.getEntries());
这非常有效,但在我的例子中,我的标准是参数,而不是类和集合。 我的问题是,这个方法是否可以调整为将条件作为参数,或者我应该简单地使用@SuppressWarnings(“unchecked”)?

从注释中移动:
是否要强制转换条件对象?这毫无意义
criteria.list()
返回一个列表,因此您可以直接使用它


无论如何,
castList
方法是奇怪的,您没有获得任何编译时类型安全性(只有在运行时出错时它才会失败),而且它可能会减慢速度,特别是当列表很长时。我只想使用@SuppressWarnings或live with the Warnings。

您想强制转换Criteria对象吗?这毫无意义
criteria.list()
返回一个列表,所以我不确定差距在哪里。不管怎样,这种方法很奇怪,您没有获得任何编译时类型安全性(只有在运行时出错时它才会失败),而且它可能会减慢速度,特别是当列表很长时。我只想使用
@SuppressWarnings
或接受警告。@Taylor请回答这个评论,这样我就可以接受它(当然,如果你愿意的话)。