标签:number 编译 必须 更新 设计 程序 ast start 数据
ArrayList list=new ArrayList();
list.add(); 原始的list可以添加任何类型的数据。
泛型之后:
ArrayList<String> list=new ArrayList();
list.add(); 只能添加String数据类型的数据
ArrayList<Object> list=new ArrayList();
list.add(); 只能添加object类型数据
泛型之后无论你在<>里面添加什么数据,最后他都调用了原始的ArrayList,其实就是伪泛型。尖括号的作用是知道你要往数组添加的数据类型,让你往里面添加的数据都是一致的。使用的时候就不会出现错误。
如果没有尖括号标识的判断的话,你想建立一个String数组,但你可以往数组添加任何数据,当你添加了integer,添加没问题,但是使用的时候,获取的是String,需要强转,integer转成String的时候就会有错误。(后续更新)
查看了数组的源代码我们可以知道,里面的是object,当使用泛型定义的时候,原始类就会自动将尖括号里面的类型替换掉Object,从而初始化。
参考了:http://blog.csdn.net/sunxianghuang/article/details/51982979
标签:number 编译 必须 更新 设计 程序 ast start 数据
原文地址:http://www.cnblogs.com/a1070022846/p/7657370.html