Por que a caixa automática em Java me permite ter três valores possíveis para um booleano?

Referência:http://java.sun.com/j2se/1.5.0/docs/guide/language/autoboxing.html

"Se o seu programa tentar autounbox null, ele lançará uma NullPointerException."

O javac fornecerá um erro em tempo de compilação se você tentar atribuir nulo a um booleano. faz sentido. atribuir nulo a um booleano é aceitável. também faz sentido, eu acho.

mas vamos pensar no fato de que você receberá um NPE ao tentar autounbox null. o que isso significa é que você não pode executar operações booleanas com segurança nos booleanos sem verificação nula ou tratamento de exceções. O mesmo vale para operações matemáticas em um número inteiro.

por um longo tempo, eu era fã de autoboxing em java1.5 +, porque achei que o java estava mais próximo de ser realmente orientado a objetos. mas, depois de me deparar com esse problema ontem à noite, devo dizer que acho que isso é péssimo. o compilador que está me dando um erro quando estou tentando fazer coisas com um primitivo não inicializado é uma coisa boa. Eu não quero usar autoboxing se eu perder isso.

Eu acho que posso estar entendendo mal o ponto do autobox, mas ao mesmo tempo nunca aceitarei que um booleano possa ter três valores. alguém pode explicar isso? o que eu não estou recebendo?

questionAnswers(9)

yourAnswerToTheQuestion