所以我有一個功能,看起來像這樣:處理來自java「未經檢查的轉換」的潛在運行時異常的最佳方式是什麼?
@SuppressWarnings("unchecked")
public static <E> Set<E> getSetOfClass(Query q,Class<E> clazz) {
return new LinkedHashSet<E>(q.getResultList());
}
我相信這是什麼東西做的是一個javax.persistence.Query
並返回其結果集作爲通用Set<Class>
。
這似乎是一個很好的解決方案,但首先,它實際上是在做我認爲的事情,這是實現這一目標的最佳方式嗎?我覺得很奇怪,我從來沒有引用我的clazz
param,但它似乎做我想做的。其次,如果這一切都是正確和明智的,那麼這會拋出什麼錯誤?我想象如果我給它一個不正確的類,這個函數將不起作用,儘管我不確定這一點。
如果我做這樣的事情:
Query q = em.createQuery("FROM Element");
Set<Fish> s = MyUtil.getSetOfClass(q, Fish.class);
如果Fish
不是Element
那麼會發生什麼超?我應該假設這個函數總是被正確使用,或者我應該這樣做錯誤處理嗎?人們對最佳實踐方法的建議是什麼?
問候,
格倫X
關於未使用'clazz',其實,你不使用你的類PARAM因爲你無需再通過。您可以忽略該參數並將該方法調用爲: 'MyUtil。 getSetOfClass(q)',但如果你不習慣它,它就是一個更偉大的語法。我建議使用@Andreas_D推薦的'clazz'參數。 –
Blaisorblade
2012-02-13 15:41:32