0
代碼第一:)避免關於類的未經檢查的轉換異常的警告?
/**
*
* @param arrayList the ArrayList
* @return a random object from the ArrayList
*/
public static Object randomArrayListObject(ArrayList<?> arrayList) {
Random random = new Random();
int i = random.nextInt(arrayList.size());
assert i >= 0;
assert i < arrayList.size();
return arrayList.get(i);
}
public static Class<? extends Juice> randomArrayListJuiceClass(
ArrayList<Class<? extends Juice>> arrayList) {
final Object o = randomArrayListObject(arrayList);
assert Juice.class.isAssignableFrom((Class) o);
if (Juice.class.isAssignableFrom((Class) o)) {
@SuppressWarnings("unchecked")
Class c = (Class<? extends Juice>) o;
return c;
} else throw new RuntimeException("wtf? not a Juice Class??");
}
我得到這樣的警告:
未選中分配: 'java.lang.Class中的' 到「的java.lang.Class <? 擴展drinks.Juice >「
我把所有的怪物代碼randomArrayListJuiceClass()
要儘量避免這樣的警告,但我仍然無法弄清楚。我能做什麼?
我的目標就是返回(某種)Juice
類沒有警告......我知道,我只喂randomArrayListJuiceClass()
一些Juice
,我只是以防萬一拋出Exception
我是草率和餵它別的東西。
我該怎麼辦?
謝謝,我會試試這個 – ycomp