问题遇到的现象和发生背景
将List赋值给List可以用get方法取出,反之则抛出ClassCastException
问题相关代码,请勿粘贴截图
public class ErasureTest {
public static void main(String[] args) {
List<String> ls = new ArrayList<>();
ls.add("Hello Java");
List l = ls;
List<Integer>li = l;
System.out.println(li.get(0));
// List<Integer> li = new ArrayList<>();
// li.add(6);
// li.add(9);
// List list = li;
// // 下面代码引起“未经检查的转换”的警告,编译、运行时完全正常
// List<String> ls = list; // ①
// // 但只要访问ls里的元素,如下面代码将引起运行时异常。
// System.out.println(ls.get(0));
}
}