【发布时间】:2012-05-28 15:07:28
【问题描述】:
我有以下课程:
public class Base {
public int someMethod(){...}
}
public class Derrived extends Base {
@Override
public int someMethod(){...}
}
我还有一个返回List<Base>的方法
List<Base> method() {
return fetch();
}
方法 fetch() 返回 List<? extends Base> 但实际上它包含 Derived 类的实例列表
List<? extends Base> fetch() {}
但定义方法method() 的代码将无法编译。它需要转换为List<Base>。如果我总是可以将该集合的实例视为基类的实例,为什么我需要强制转换它?
【问题讨论】: