Java boolean
pozwala na wartości true
, a false
jednocześnie pozwala logiczna true
, false
i null
. Zacząłem konwertować moje boolean
s na Boolean
s. Może to powodować awarie w testach, takich jak
Boolean set = null;
...
if (set) ...
podczas testu
if (set != null && set) ...
wydaje się wymyślony i podatny na błędy.
Kiedy, jeśli w ogóle, warto używać Boolean
s z wartościami null? Jeśli nigdy, to jakie są główne zalety opakowanego przedmiotu?
AKTUALIZACJA: Było tak wiele cennych odpowiedzi, że niektóre z nich podsumowałem we własnej odpowiedzi. Jestem co najwyżej średniozaawansowanym w Javie, więc starałem się pokazać rzeczy, które uważam za przydatne. Zwróć uwagę, że pytanie jest „niepoprawnie sformułowane” (wartość logiczna nie może „mieć wartości zerowej”), ale zostawiłem je na wypadek, gdyby inni mieli to samo błędne przekonanie
null
jeśli rzeczywiście jest używany jako trzeci stan.
Boolean
jest obiektem, podczas gdy a boolean
jest „skalarem”. Jeśli Boolean
odniesienie ma wartość null, oznacza to, że odpowiedni Boolean
obiekt nie istnieje. Nie możesz umieścić niczego w czymś, co nie istnieje.
Boolean
zmiennejnull
pomaga.