【发布时间】:2019-07-08 17:32:35
【问题描述】:
我有以下代码工作,但我不确定为什么它不会引发异常:
List[] x=new ArrayList[2];
x[0]=new ArrayList<Integer>();
x[1]=new ArrayList<String>();
x[0].add("test");
x[1].add(5);
System.out.println(x[0]);
System.out.println(x[1]);
打印出来:
[test]
[5]
x[0] 是整数数组,它添加字符串没有任何问题。 x[1] 是字符串数组,它添加整数没有任何问题。
它是如何工作的?
【问题讨论】:
-
一个很好的例子,说明为什么你不应该使用原始类型。请注意,泛型在运行时会被删除。所以如果它编译,它也会运行。泛型仅在编译时提供安全性。使用原始类型,您有效地绕过了所有安全性。