读书人

关于Java6 泛型的1点讨论

发布时间: 2012-12-19 14:13:14 作者: rapoo

关于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()方法还是无法正常使用``

?

读书人网 >编程

热点推荐