泛型:将`List <string>`添加到`List <object>`

时间:2016-05-30 12:56:10

标签: java generics collections

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

https://stackoverflow.com/a/20356096/5086633

  

该方法不适用,因为StringObject但是   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]

1 个答案:

答案 0 :(得分:1)

您正尝试将实际List添加到List只能包含String的{​​{1}},以便成功添加每个项目,您需要循环遍历{{1列出并单独添加

testObj