【发布时间】:2014-12-02 17:54:00
【问题描述】:
为什么println 转换为List<Integer> 后打印“tom”并且没有显示任何运行时异常,而转换为List<String> 后却无法打印值1?
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String args[]) {
List list = Arrays.asList(1, "tom");
System.out.println(((List<Integer>) list).get(1));
// "tom"
System.out.println(((List<String>) list).get(0));
// ClassCastException: Integer cannot be cast to String
}
}
【问题讨论】:
-
它是显示运行时异常。
-
一次注释掉一种类型的列表以获得所需的输出,即 // List
list3 = list1; // System.out.println(list3.get(0));
标签: java list generics arraylist