【发布时间】:2008-11-25 17:29:28
【问题描述】:
是否可以将 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);
}
}
}
【问题讨论】:
标签: java generics casting polymorphism