假设您有一个带有子类 SC1、SC2、...的基类 BC 和一个对象集合 C(一些类型为 SC1,一些类型为 SC2,......)。方法 m 在子类中定义,而不是在 BC 中。我希望做这样的事情:
class AnotherClass {
private BC getObj(Container c) { /*return something from c*/ }
private void anotherMethod() {
...
BC o = getObj(c);
o.m();
}
}
现在 getObj 将返回一个对对象的引用 o 并且据我所知它必须是 BC 类型(或者有没有办法在这里应用泛型?)。我收到一个编译错误(m() 在 BC 中不存在)。我假设有一种很好的方法可以做到这一点(无需“手动”以某种方式找出 o 的真实类型)?