【发布时间】:2016-10-15 11:27:12
【问题描述】:
有人可以向我解释为什么 Java 会忽略除 String 类之外的所有对象类型上的迭代器强制转换的原因吗?
我有以下代码:
List list = new LinkedList();
list.add(new Object());
list.add(new String("First"));
list.add(10);
list.add(2.3);
我有两种情况:
1)
Iterator<Integer> crunchifyIterator = list.iterator();
while (crunchifyIterator.hasNext()) {
System.out.println((crunchifyIterator.next()));
}
结果是:
java.lang.Object@2a139a55
第一
10
2.3
2)
Iterator<String> crunchifyIterator = list.iterator();
while (crunchifyIterator.hasNext()) {
System.out.println((crunchifyIterator.next()));
}
结果是:
线程“主”java.lang.ClassCastException 中的异常: java.lang.Object 不能转换为 java.lang.String
不知道是什么原因。
【问题讨论】:
标签: java string iterator integer classcastexception