关于Java6 泛型的一点讨论
?
在JAVA5中加入了泛型,以在编译时就可以控制类型```
程序代码genericChildTest<? extends ArrayList<String>> g1 = null; genericChildTest<ArrayList<String>> g2 = new genericChildTest<ArrayList<String>>(); ArrayList<String> al = new ArrayList<String>(); al.add("e"); g2.setA(al); g1= g2; g1.setA(al);?
在最后的一句???g1.setA(al);``在编译时会报错如下:
程序代码The method setA(capture#2-of ? extends ArrayList<String>) in the type genericTest<capture#2-of ? extends ArrayList<String>> is not applicable for the arguments (ArrayList<String>)也就是说``在定义?? genericChildTest<? extends ArrayList<String>> g1 = null;时`虽然限定了这泛类型必须是 ArrayList<String>或其子类`但`还是无法确定到底是哪个子类```所以这里的setA()方法还是无法正常使用``
?