Java boolean
consente valori di true
e false
mentre booleano consente true
, false
e null
. Ho iniziato a convertire le mie boolean
s in Boolean
s. Ciò può causare arresti anomali in test come
Boolean set = null;
...
if (set) ...
mentre il test
if (set != null && set) ...
sembra inventato e soggetto a errori.
Quando, se mai, è utile usare Boolean
s con valori null? Se mai, quali sono i principali vantaggi dell'oggetto avvolto?
AGGIORNAMENTO: Ci sono state molte risposte preziose che ho riassunto alcune di queste nella mia risposta. Nella migliore delle ipotesi sono un intermediario in Java, quindi ho cercato di mostrare ciò che trovo utile. Nota che la domanda è "formulata in modo errato" (il valore booleano non può "avere un valore nullo") ma l'ho lasciato nel caso in cui altri abbiano lo stesso malinteso
null
se fosse davvero usato come terzo stato.
Boolean
è un oggetto, mentre a boolean
è uno "scalare". Se un Boolean
riferimento è impostato su null significa che l' Boolean
oggetto corrispondente non esiste. Non puoi mettere nulla dentro qualcosa che non esiste.
Boolean
variabilenull
aiuta.