-1
我不擅长泛型,但有人可以告诉我如何在下面的代码中添加List<String>
到List<Object>
?或者,我错过了一些非常基本的东西。泛型:将`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]