java从List强制转换 **为 B扩展A的列表**

**

这可能吗?如果不是,为什么在Java中这不可能呢?

interface B extends A {}

public List<B> getList();

List<A> = getList(); // Type mismatch: cannot convert from List<B> to List<A>

**

我认为我正在寻找的主题是此处“协变类型”,但是它晦涩难懂,并且不能解决我的问题。

回答:


这是一个直观的示例,说明如何使错误变得可怕:

interface B extends A {}

List<B> blist=new List<B>();

List<A> alist=blist;

alist.add(new A()); //should be ok, right?

B b = blist.get(0); //fail: even though blist is a List<B>, it now has an A in it

以上是 java从List强制转换 **为 B扩展A的列表** 的全部内容, 来源链接: utcz.com/qa/420759.html

回到顶部