列表arraylist转换

时间:2012-10-02 11:41:10

标签: java list arraylist polymorphism

  

可能重复:
  Java Generics: Cannot cast List<SubClass> to List<SuperClass>?

我只是想知道为什么以下java代码无法编译:

List<Object> c1 = new ArrayList<String>();

错误是:     cannot convert from ArrayList <String> to List<Object>

String extends Object,所以我认为使用多态,因为String“是一个”String,可以用String替换Object。

我刚刚开始学习java,所以希望这个问题有意义。

提前感谢...

3 个答案:

答案 0 :(得分:1)

你可以这样做

List<? extends Object> list=new List<String>();

对象具有继承性,但泛型有点不同。

答案 1 :(得分:0)

这不能像这样工作,这里的共同父项是List,而不是存储在该List中的元素类型。因此这两种类型并不是真正相关的。看看this

答案 2 :(得分:0)

通常情况就是如此,但对于泛型而言则不然。泛型用于精确指定集合中包含的对象。您可以阅读更多相关信息here