• ベストアンサー

どのオブジェクトなのかの判別。

class State { ... } class A extends State { ... } class B extends State { ... } public static void main(String[] args){ State s = new A(); …//分岐条件などによりStateがAとかBに変化する …//ここでsはAかBかを知りたい。 } という場合、sがAのオブジェクトかBのオブジェクトなのかを判別する簡単な方法はありますか? 状態を表すようなフィールド変数を導入して、判別する方法くらいしか思いつきません。

質問者が選んだベストアンサー

  • ベストアンサー
  • davosuke
  • ベストアンサー率61% (34/55)
回答No.1

instanceof演算子を使えばいいのでは?? public static void main(String[] args){ State s = new A(); …//分岐条件などによりStateがAとかBに変化する …//ここでsはAかBかを知りたい。  if(s instanceof A){ //Aのときの処理 }else if(s instanceof B){    //Bのときの処理   } }

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.2

instanceof演算子というものがあります。

すると、全ての回答が全文表示されます。

関連するQ&A