【发布时间】:2015-07-01 21:42:18
【问题描述】:
我有以下代码:
public static void main(String[] args) {
List<String> s = new ArrayList<String>();
s.add("kshitiz");
//This is not typesafe. It should blow up at runtime
List<Integer> i = new ArrayList(s);
System.out.println(i.get(0));
}
这个程序运行良好,它打印kshitiz。仅当我将最后一行替换为:
System.out.println(i.get(0).getClass());
例外:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
这里发生了什么?
【问题讨论】:
-
请指定Java版本
-
抛出什么异常?
-
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer -
您忽略了一些重要的编译器警告。您的 IDE 或编译器应该警告您访问原始类型。