Javaでブール変数を切り替える最もクリーンな方法は?

StackOverflow https://stackoverflow.com/questions/224311

  •  03-07-2019
  •  | 
  •  

質問

単純なif-elseよりもJavaのブール値を無効にするより良い方法はありますか?

if (theBoolean) {
    theBoolean = false;
} else {
    theBoolean = true;
}
役に立ちましたか?

解決

theBoolean = !theBoolean;

他のヒント

theBoolean ^= true;

変数が4文字を超える場合はキーストロークを減らします

いくつかあります

「明白な」方法(ほとんどの人向け)

theBoolean = !theBoolean;

「最短」方法(ほとんどの場合)

theBoolean ^= true;

「最も視覚的な」方法(ほとんど不確実)

theBoolean = theBoolean ? false : true;

追加:トグルしてメソッド呼び出しで使用

theMethod( theBoolean ^= true );

代入演算子は常に代入されたものを返すため、ビットごとの演算子を介して値を切り替えてから、メソッド呼び出しで使用される新しく割り当てられた値を返します。

ブール値のNULL値を使用し、それらをfalseとみなす場合、これを試してください:

static public boolean toggle(Boolean aBoolean) {
    if (aBoolean == null) return true;
    else return !aBoolean;
}

ブール値のNULL値を渡さない場合は、これを試してください:

static public boolean toggle(boolean aBoolean) {
   return !aBoolean;
}

これらはメソッドシグネチャに意図を示し、演算子に比べて読みやすく、簡単にデバッグできるため、最もクリーンなです。

>

使用法

boolean bTrue = true
boolean bFalse = false
boolean bNull = null

toggle(bTrue) // == false
toggle(bFalse) // == true
toggle(bNull) // == true

もちろん、 Groovy または拡張メソッドを許可する言語を使用している場合、拡張機能を登録するだけで簡単に実行できます。

Boolean b = false
b = b.toggle() // == true

特に専門的なことをしていない場合は、常にUtilクラスを使用できます。例:クラスのプロジェクトからのutilクラス。

public class Util {


public Util() {}
public boolean flip(boolean bool) { return !bool; }
public void sop(String str) { System.out.println(str); }

}

次に、Utilオブジェクトを作成します Util u = new Util(); System.out.println(u.flip(bool));

を返すための何かを持っています

同じものを何度も繰り返し使用する場合は、メソッドを使用します。特にプロジェクト間で使用する場合は、Utilクラスを作成します。しかし、業界標準とは何ですか。 (経験豊富なプログラマーは私を自由に修正できます)

前:

boolean result = isresult();
if (result) {
    result = false;
} else {
    result = true;
}

後:

boolean result = isresult();
result ^= true;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top