Per un boolean
è piuttosto facile, uno Boolean
è un po 'più impegnativo.
- Un
boolean
ha solo 2 possibili stati: true
e false
.
- A
Boolean
un altro ha 3: Boolean.TRUE
, Boolean.FALSE
o null
.
Supponendo che si sta solo a che fare con un boolean
(che è un tipo primitivo), allora la cosa più semplice da fare è:
boolean someValue = true; // or false
boolean negative = !someValue;
Tuttavia, se si vuole invertire una Boolean
(che è un oggetto), è necessario prestare attenzione al valore null
oppure si può finire con uno NullPointerException
.
Boolean someValue = null;
Boolean negativeObj = !someValue.booleanValue(); --> throws NullPointerException.
Supponendo che questo valore non è mai nullo, e che la vostra azienda o organizzazione non ha code-regole contro automatica (ONU) di pugilato. In realtà puoi solo scriverlo in una riga.
Boolean someValue = Boolean.TRUE; // or Boolean.FALSE
Boolean negativeObj = !someValue;
Tuttavia, se si vuole prendere cura dei valori null
pure. Poi ci sono diverse interpretazioni.
boolean negative = !Boolean.TRUE.equals(someValue); //--> this assumes that the inverse of NULL should be TRUE.
// if you want to convert it back to a Boolean object, then add the following.
Boolean negativeObj = Boolean.valueOf(negative);
D'altra parte, se si vuole null
rimanere null
dopo l'inversione, allora si può prendere in considerazione utilizzando la apache commons
classe BooleanUtils
(see javadoc)
Boolean someValue = null; // or Boolean.TRUE or Boolean.FALSE;
Boolean negativeObj = BooleanUtils.negate(someValue);
Alcuni preferiscono solo scrivere tutto fuori, per evitare di avere la dipendenza Apache.
Boolean someValue = null; // or Boolean.TRUE or Boolean.FALSE;
boolean negative = (someValue == null)? null : !someValue.booleanValue();
Boolean negativeObj = Boolean.valueOf(negative);
BoltClock ha la risposta ottimale; Mi piacerebbe notare, però, che "if (myBool == true)" è già di per sé molto loquace; "if (myBool)" fa esattamente la stessa cosa. – phisch
@phisch: 'if ((! MyBool! = True || false) && (! (MyBool! = False || true) == false))' – BoltClock
myBool = (myBool)? falsa verità; (Perché non riesco a resistere all'opportunità di usare la forma ternaria anche se questo non è - il più conciso) – KevinDTimm