Javaのオブジェクトを結合されたジェネリック型にキャストすることは可能ですか?
私は次のような方法を持っています:
public static <T extends Foo & Bar> void doSomething(T object) {
//do stuff
}
両方のインターフェイス (Foo と Bar) を実装するクラスがある場合、このメソッドを呼び出すことは問題ありません。
問題は、このメソッドを呼び出す必要があるときに、渡す必要のあるオブジェクトを受け取ったjava.lang.Object
ときに、コンパイラを満足させるためにキャストする必要があることです。しかし、このキャストを作成する方法がわかりません。
編集:
問題は、次のような関数にあります。
public void problemFunction (Object o) {
if ( o instanceof Foo && o instanceof Bar) {
doSomething((Problematic cast) o);
}
}
}