Frage

Gibt es einen besseren Weg, um einen boolean in Java als eine einfache if-else?

negieren
if (theBoolean) {
    theBoolean = false;
} else {
    theBoolean = true;
}
War es hilfreich?

Lösung

theBoolean = !theBoolean;

Andere Tipps

theBoolean ^= true;

weniger Tastenanschläge, wenn Ihre Variable länger als vier Buchstaben

Es gibt mehr

Die "offensichtlich" Art und Weise (für die meisten Menschen)

theBoolean = !theBoolean;

Der "kürzeste" Weg (die meiste Zeit)

theBoolean ^= true;

Die "most visual" Art und Weise (die meisten verunsichert)

theBoolean = theBoolean ? false : true;

Extra: Toggle und Verwendung in einem Methodenaufruf

theMethod( theBoolean ^= true );

Da der Zuweisungsoperator gibt immer was zugewiesen wurde, wird dies den Wert über den Bit-Operator wechseln, und er dann wieder neu zugewiesenen Wert in dem Methodenaufruf verwendet werden.

Wenn Sie Boolesche NULL-Werte verwenden und sie falsch betrachten, versuchen Sie dies:

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

Wenn Sie nicht Boolean NULL-Werte übergeben, versuchen Sie dies:

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

Dies sind die sauberste , weil sie die Absicht in der Methodensignatur zeigen, leichter im Vergleich zu lesen, um die Operator und kann leicht ausgetestet werden.

Verwendung

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

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

Natürlich, wenn Sie verwenden Groovy oder eine Sprache, die Erweiterungsmethoden erlaubt, können Sie eine Erweiterung registrieren und einfach tun:

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

Wenn Sie nicht etwas zu tun, vor allem professionelle Sie immer eine Util-Klasse verwenden kann. Ex, eine util Klasse aus einem Projekt für eine Klasse.

public class Util {


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

}

dann erstellen Sie einfach ein Util Objekt Util u = new Util(); und haben etwas für die Rückkehr System.out.println( u.flip(bool) );

Wenn Sie gonna end up mit der gleichen Sache immer und immer sind, verwenden Sie eine Methode, und vor allem, wenn es über Projekte ist, eine Util Klasse. aber weiß nicht, was der Industriestandard ist. (Erfahrene Programmierer fühlen sich frei, mich zu korrigieren)

Vorher:

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

Nach:

boolean result = isresult();
result ^= true;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top