集合中的外卡:extends,super

时间:2015-01-14 19:16:52

标签: java java-collections-api

我遇到了在集合中使用通配符的问题。它类似于java generic and wild card中的问题,但我发现的回答令我感到困惑。可以请指教吗?

问题:我想使用一个类及其子类型的集合。在文档的基础上,我预计我必须使用<? extends myclass>,但它不适用于此,但是如果不使用它,它可以顺利运行。为什么会这样,它应该是对立?超类的<? super myclass>是否相同?

正确示例:

    List<Number> nl = new ArrayList<>();
    nl.add(new Integer(2));
    System.out.println("===> List<Number>.add (new Integer(2)) = " + nl.get(0));

不正确的示例:

List<? extends Number> nl = new ArrayList<>();
nl.add(new Integer(2));
System.out.println("===> List<Number>.add (new Integer(2)) = " + nl.get(0));

我很感激你的建议。非常感谢,Tamas

0 个答案:

没有答案