我是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。