【发布时间】:2010-07-24 13:30:07
【问题描述】:
我有以下场景:
public class A {
}
public class B extends A {
}
public class C extends B {
public void Foo();
}
我有一个可以返回类 A、B 或 C 的方法,我想安全地转换为 C,但前提是类类型是 C。这是因为我需要调用 Foo() 但我不想要 ClassCastException。
【问题讨论】:
-
在你全速使用
instanceof之前,看看这样的帖子,因为使用instanceof通常是设计缺陷的标志:stackoverflow.com/questions/2750714/…和stackoverflow.com/questions/2790144/avoiding-instanceof-in-java -
考虑使用和接口,这样你就可以摆脱java单一继承模型强加给你的所有细微差别和限制。公共接口 IFoo{ 公共无效 foo();}