我就创建了两个集合list,然后定义了泛型。为什么几个add都编译出错的???
public class B {
public static void main(String[] a) {
ArrayList<? extends String> aaa = new ArrayList<String>();
aaa.addAll("st");
aaa.add("aaa");
} public void takelist(ArrayList<? extends Object> list) {
list.addAll("st");
list.add("add");
}
}

解决方案 »

  1.   

    ArrayList<? extends String> aaa = new ArrayList<String>();
    ArrayList<? extends Object> list这样的代码有意义吗?
    String是final类型的,不能被子类继承这是内置的设计。
    后面? extends Object就更不用说了。
      

  2.   

    请问楼主,你想干嘛?印象中泛型好像不是这样用的吧import java.util.ArrayList;public class TestGeneric
    {
    public static void main(String[] args)
    {
    ArrayList <String> list = new ArrayList<String>();
    list.add("st");
    list.add("aaa");
    System.out.println(list);
    }
    }
    /*
     * output:
     * [st, aaa]
     */
      

  3.   

    class B {
    public static void main(String[] a) {
    ArrayList<String> aaa = new ArrayList<String>();
    aaa.add("st");
    aaa.add("aaa");
    } public void takelist(ArrayList<String> list) {
    list.add("st");
    list.add("add");
    }
    }
      

  4.   

    String 类是不可以被继承的,另外也不懂楼主想干什么
      

  5.   

    貌似Java中的泛型和C++中的有差距啊……那个final类是不能被extends的,所以报错了。
      

  6.   

    String 类是不可以被继承的,不知道你想干嘛!!!!
      

  7.   

    String是 final , 意味着不能继承的List<String> list = new ArrayList<String>();list.add("hello");...这样就好了
      

  8.   

    aaa.addAll("st");方法不对,AddAll方法传递的参数应该是一个集合,是指将一个集合中的所有元素加到本集合中
      

  9.   

    final String{} can't be extended!!!