当我想在从方法返回的引用中转换ArrayList
对象时:List
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
该方法的返回类型asList
是List
对对象的引用ArrayList
,这意味着我可以将其转换为ArrayList
引用。这样:
String[] colors = { "black", "blue", "yellow" };
ArrayList<String> links = (ArrayList<String>) Arrays.asList(colors) ;
但是这段代码产生了运行时错误:
线程“主”java.lang.ClassCastException 中的异常:java.util.Arrays$ArrayList 无法转换为 java.util.ArrayList
为什么会这样?