-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]