一尘不染

是否可以在switch语句中使用instanceof运算符?

java

我对instanceof对象使用开关盒有疑问:

例如:我的问题可以用Java复制:

if(this instanceof A)
    doA();
else if(this instanceof B)
    doB();
else if(this instanceof C)
    doC():

如何使用实施switch...case


阅读 1142

收藏
2020-03-17

共1个答案

一尘不染

这是子类型多态性有帮助的典型方案。请执行下列操作

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() } ... }

然后,你可以简单的调用do()this

如果你不能随意更改ABC,则可以应用访问者模式来实现相同目的。

2020-03-17