我有一个为 instanceof
对象使用 switch case 的问题:
例如:我的问题可以用Java复现:
if(this instanceof A)
doA();
else if(this instanceof B)
doB();
else if(this instanceof C)
doC():
如何使用 switch...case
来实现?
最佳答案
这是子类型多态性有帮助的典型场景。执行以下操作
interface I {
void do();
}
class A implements I { void do() { doA() } ... }
class B implements I { void do() { doB() } ... }
class C implements I { void do() { doC() } ... }
然后你可以简单地在 this
上调用 do()
。
如果您不能随意更改 A
、B
和 C
,您可以应用访问者模式来实现相同的目的。
关于java - 是否可以在 switch 语句中使用 instanceof 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5579309/