当前位置: 代码迷 >> J2SE >> 集合ArrayList的add如何编译不过
  详细解决方案

集合ArrayList的add如何编译不过

热度:124   发布时间:2016-04-24 12:33:13.0
集合ArrayList的add怎么编译不过?
我就创建了两个集合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");
}
}



------解决方案--------------------
ArrayList<? extends String> aaa = new ArrayList<String>();
ArrayList<? extends Object> list

这样的代码有意义吗?
String是final类型的,不能被子类继承这是内置的设计。
后面? extends Object就更不用说了。
------解决方案--------------------
请问楼主,你想干嘛?印象中泛型好像不是这样用的吧
Java code
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] */
------解决方案--------------------
extends String有什么意思啊
------解决方案--------------------
代码改改就好了
------解决方案--------------------
泛型的通配符不是这个用途。
------解决方案--------------------
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");
}
}

------解决方案--------------------
泛型定义错了
------解决方案--------------------
字符串不能这么整
------解决方案--------------------
看不懂LZ的代码。
------解决方案--------------------
String 类是不可以被继承的,另外也不懂楼主想干什么
------解决方案--------------------
貌似Java中的泛型和C++中的有差距啊……

那个final类是不能被extends的,所以报错了。
------解决方案--------------------
通配符要哭了
------解决方案--------------------
范型用错了而已
------解决方案--------------------
aaa.addAll("st");方法不对,AddAll方法传递的参数应该是一个集合,是指将一个集合中的所有元素加到本集合中
------解决方案--------------------
final String{} can't be extended!!!
  相关解决方案