サブクラス 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 の実際のタイプを「手動で」把握する必要はありません)?