Java booleanpozwala na wartości true, a falsejednocześnie pozwala logiczna true, falsei null. Zacząłem konwertować moje booleans na Booleans. 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ć Booleans 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
nulljeśli rzeczywiście jest używany jako trzeci stan.
Booleanjest obiektem, podczas gdy a booleanjest „skalarem”. Jeśli Booleanodniesienie ma wartość null, oznacza to, że odpowiedni Booleanobiekt nie istnieje. Nie możesz umieścić niczego w czymś, co nie istnieje.
Booleanzmiennejnullpomaga.