public class Main {
public static void main(String[] args) {
List<Object[]> list = getIt();
// unsuccessful iteration, throws ClassCastException
for (Object id : list) {
System.out.println(id);
}
// successful iteration
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
private static List<Object[]> getIt() {
List list = new ArrayList();
list.add(1L);
return list;
}
}
我粗略地估计会发生什么(编译器生成的迭代器包含显式转换),但想要一些好的答案,谢谢。
最佳答案
当我使用 Java 7 运行此程序时,我没有得到 ClassCastException,我也不希望得到它,因为该对象在 main() 中被强制转换为 Object
;
关于java - 下一个代码中类转换异常的确切原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11470865/