是否可以将 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);
}
}
}