为什么原始Set成功添加到ArrayList <string>调用addAll(Collection <! - ?extends E - > c)方法?

时间:2017-03-17 09:20:35

标签: java

任何人都可以告诉我为什么addAll方法允许在已经具有String限制的通用列表中编译原始类型。 根据我的理解,addAll(Collection&lt;?extends T&gt; c)将转换为addAll(Collection&lt;?extends String&gt; c),它可以使用String或其子类型。

    List<String> x = new ArrayList<String>();
    x.add("sfhvjk");
    //ArrayList<Integer> s = new ArrayList();
    ArrayList s = new ArrayList();

    //s.add("efyi");
    s.add(3);
    x.get(0);
    x.addAll(s);// why its not giving compile time error? 
    for( Object o :x){
        System.out.println(o);
    }

0 个答案:

没有答案