1. ホーム

[解決済み】switch文の中でinstanceof演算子を使用することは可能ですか?

2022-03-27 08:22:54

質問

のスイッチケースについて質問です。 instanceof オブジェクトを作成します。

例:私の問題は、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() } ... }

そうすると、単純に do()this .

自由に変更できない場合 A , B および C の場合、visitorパターンを適用して同じように実現できます。