プロが教えるわが家の防犯対策術!

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のオブジェクトなのかを判別する簡単な方法はありますか?

状態を表すようなフィールド変数を導入して、判別する方法くらいしか思いつきません。

A 回答 (2件)

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のときの処理
  }
}
    • good
    • 0

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!