【发布时间】:2023-04-07 19:22:01
【问题描述】:
我是 Java 新手,我想了解为什么第一个代码 sn-p 不会导致此异常,但第二个代码会。由于在这两种情况下都将字符串数组传递给 Arrays.asList ,所以这两个 sn-ps 不应该产生异常还是不产生异常?
Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
第一个sn-p(无异常):
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));
第二次sn-p(导致上述异常):
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。
【问题讨论】:
-
我在 IBM JDK 上,对我来说,即使是你的第一个 sn-p 也会出现同样的错误!
-
感谢您的所有回答。每个答案都有有用的信息,帮助我更好地理解 Java,并提醒我使用良好的编码风格。
标签: java arrays casting multidimensional-array arraylist