我有以下的实用工具类:这为什么不安全?
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完成... –