我就创建了两个集合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!!!