关于Java泛型的问题,知道的请进!!!
在看到类型擦除的时候,有点疑惑。
举个例子:
ArrayList<String> arrayList=new ArrayList<String>();
arrayList.add("123")//这个地方必须是字符串
为什么不可以是其他类型,不是说在编译的时候类型擦除了吗,那么,它的原始类型应该为Object,那么为什么add方法的参数不可以是其他的类型?
------解决方案--------------------我猜先检查编译错误,如:泛型类型不一致。
然后再擦除继续编译。。。
------解决方案--------------------刚才瞅了一下核心技术 在java5.0以前这个是不检查的
arrayList.add(123); 这个是可以执行的
但是在从arrayList中取这个值的时候会有错误 因此我觉着也是跟上面那哥们说的一样
先检查编译是否有错在执行
------解决方案--------------------泛型的优点在于能够在编译时而不是在运行时检测错误
------解决方案--------------------我记得编程思想里面说的是在变异的时候,就会记录下具体的类型
------解决方案--------------------就是这样