tipos operadores metodo logicos ejemplos declarar comparar java boolean

operadores - Manera más limpia de alternar una variable booleana en Java?



operadores logicos java (5)

¿Hay una mejor manera de negar un booleano en Java que un simple if-else?

if (theBoolean) { theBoolean = false; } else { theBoolean = true; }


Hay varios

La forma "obvia" (para la mayoría de las personas)

theBoolean = !theBoolean;

La forma "más corta" (la mayor parte del tiempo)

theBoolean ^= true;

La forma "más visual" (más incierta)

theBoolean = theBoolean ? false : true;

Extra: alternar y usar en una llamada a un método

theMethod( theBoolean ^= true );

Dado que el operador de asignación siempre devuelve lo que se ha asignado, esto alternará el valor a través del operador bit a bit, y luego devolverá el valor recientemente asignado para ser utilizado en la llamada al método.


Antes de:

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

Después:

boolean result = isresult(); result ^= true;


Si usa valores booleanos NULL y los considera falsos, intente esto:

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

Si no está entregando valores NULL Booleanos, intente esto:

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

Estos son los más limpios porque muestran la intención en la firma del método, son más fáciles de leer en comparación con el ! operador, y puede ser fácilmente depurado.

Uso

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

Por supuesto, si usa Groovy o un lenguaje que permite métodos de extensión, puede registrar una extensión y simplemente hacer:

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


theBoolean = !theBoolean;


theBoolean ^= true;

Menos pulsaciones de teclas si su variable tiene más de cuatro letras