本帖最后由 anqi 于 2014-4-19 23:17 编辑
不能 java最新的策略时候编译时期不报错,那么运行时期不报错。早期的java设计不严谨,会出现这种类型转换异常。而泛型的加入就是为了避免这种异常。
虽然在运行时,泛型是不存在的,即List<Integer>类 实际的运行是List类,即不存在泛型类。(泛型大多只在编译时期)
但它在编译时期就检查你加入的元素是不是Integer类型,防止你运行的时候抛出异常。也就是你想添加String类型的,直接编译不通过。
早期的java设计不严谨如
int[] arr={1,3}
Number brr= arr;
brr[1]=4.5;
上面的两个引用型变量数组指向同一片内存空间,往里添加编译的正常,运行的时候会抛出异常。
泛型是1.5加入的,就是为了防止集合出现这种情况。
额看楼下说了反射 ,貌似还真行,自己从来没往这上面想过。
|