我有以下课程:
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>
. 如果我总是可以将该集合的实例视为基类的实例,为什么我需要强制转换它?