我有以下的實用工具類:這爲什麼不安全?
public class MyUtils{
public static <T> List<? extends T> getList(Class<T> clazz){
//returning some list
}
}
和使用該方法的類:
public class MyClass<T>{
public static List<MyClass<?>> values(){
return (List<MyClass<?>>) MyUtils.getList(MyClass.class); //Warning, unchecked cast.
}
}
這是爲什麼不投保險目前還不清楚?該方法的結果不能被分配給一個變量是這樣的:
List<MyClass<? extends Integer>> lst = MyClass.values(); //compile-error
,我們可以分配方法的結果的唯一方法是這樣的:
List<MyClass<?>> dsss = MyClass.values();
那麼,什麼樣的運行時錯誤的可能會有這樣的演員導致?
'MyClass.getList'應該是'MyClass.values',對吧? – CoronA
@CoronA Excatly,我會在一分鐘內解決。 –
@CoronA完成... –