我有这段代码给出了标题中提到的警告:
List<Student> studentList = session.createCriteria(Student.class)
.add(Restrictions.eq("indexNumber", indexNum))
.list();
我已经阅读了线程How do I fix "The expression of type List needs unchecked conversion...'? @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;
}
那么我可以这样做:
List<SyndEntry> entries = castList(SyndEntry.class, sf.getEntries());
这很好用,但在我的情况下,我有 Criteria 作为参数,而不是类和集合。我的问题是,这种方法是否可以适应将标准作为参数,或者我应该简单地使用@SuppressWarnings("unchecked")?