Javaプログラムで次のようなことが起こっています:
void f(Object o) {
g(o);
}
<T extends MySuperClass & MyInterface> void g(T x) {
...;
}
これが機能するように o をキャストするにはどうすればよいですか? ジェネリックを使用せずに、変数宣言で基底クラスとインターフェイスの両方を指定する方法はないようです。o はリフレクションを使用して動的に作成されているため、ジェネリックはここでは機能しないと思います。そのため、実際のクラスはコンパイル時にわかりません。
(ええ、私はこれがやりたいことが奇妙なことであることを知っています.しかし、私は実際にはスーパークラスとインターフェースの両方からの機能が必要です.instanceofを使用して実行時にすべての型チェックを行うことができると思いますが、それはJavaのようです. 1.4...)