我不擅长泛型,但是有人可以告诉我如何在下面的代码中将List<String>
添加到List<Object>
?
或者,我错过了一些非常基本的东西。
https://stackoverflow.com/a/20356096/5086633
该方法不适用,因为
String
是Object
但是List<String>
不是List<Object>
。
public static void main(String args[]) {
List<Object> testObj = new LinkedList<Object>();
List<String> testString = new LinkedList<String>();
testObj.add("TestObjValue1");
testObj.add("TestObjValue2");
testObj.add("TestObjValue3");
testObj.add("TestObjValue4");
testString.add("TestStrValue1");
testString.add("TestStrValue2");
testString.add("TestStrValue3");
testString.add("TestStrValue4");
System.out.println(testObj);
testObj.addAll(testString);
System.out.println(testObj);
//testString.add(testObj); --> Compile time Error
//testObj stores reference of type Object
//testString stores reference of type String
//so a String type List reference can store String type alone
//However Object type List ref variable can store Object and its subclasses??
输出
[TestObjValue1, TestObjValue2, TestObjValue3, TestObjValue4,
[TestStrValue1, TestStrValue2, TestStrValue3, TestStrValue4]]
[TestObjValue1, TestObjValue2, TestObjValue3, TestObjValue4,
[TestStrValue1, TestStrValue2, TestStrValue3, TestStrValue4],
TestStrValue1, TestStrValue2, TestStrValue3, TestStrValue4]
答案 0 :(得分:1)
您正尝试将实际List
添加到List
只能包含String
的{{1}},以便成功添加每个项目,您需要循环遍历{{1列出并单独添加
testObj