2
我有這樣的一段代碼,讓在標題中提到的警告時,列出
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());
這很好,但在我的情況下,我有標準作爲參數,而不是類和集合。 我的問題是,該方法是否可以適應標準作爲參數,或者我應該簡單地使用@SuppressWarnings(「unchecked」)?
你想投射一個Criteria對象?這是沒有意義的。 'criteria.list()'返回一個List,所以我不確定差距在哪裏。這種方法很奇怪,你不會獲得任何編譯時類型安全(如果出現問題,它仍然只會在運行時失敗),並且可能會減慢速度,尤其是在列表很長的情況下。我只是使用'@ SuppressWarnings'或者接受警告。 – Taylor
@泰勒請讓這個評論一個答案,所以我可以接受它(如果你想,當然)。 –