代码如下:
ArrayList<Dog> dogs = new ArrayList<>();
dogs.add(new Dog());
ArrayList list=dogs;
System.out.println(list==dogs);
//泛型擦出
list.add(new Cat());
System.out.println("dog size"+dogs.size());
System.out.println("list size"+list.size());
System.out.println(list==dogs);
运行结果如下:
可以看到其实添加泛型并没有从本质上更改arraylist对象中存储的数据的类型,仅仅只是在当前引用上加上了一层限制。