强制转换 Arrays.asList 导致异常:java.util.Arrays$ArrayList 无法强制转换为 java.util.ArrayList
2022-09-01 03:48:11
我是Java的新手,我试图理解为什么第一个代码片段不会导致这个异常,但第二个代码片段会导致这个异常。由于字符串数组在这两种情况下都传递到 Arrays.asList 中,那么这两个代码段难道不应该产生异常还是不产生异常?
Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
第一个代码段(不会导致异常):
ArrayList<ArrayList<String>> stuff = new ArrayList<ArrayList<String>>();
String line = "a,b,cdef,g";
String delim = ",";
String[] pieces = line.split(delim);
stuff.add((ArrayList<String>) Arrays.asList(pieces));
第二个代码段(导致上述异常):
ArrayList<ArrayList<String>> stuff = new ArrayList<ArrayList<String>>();
String[] titles = {"ticker", "grade", "score"};
stuff.add((ArrayList<String>) Arrays.asList(titles));
如果相关,我在Eclipse Helios中使用JavaSE 1.6。