Eu tenho o seguinte código:
Boolean bool = null;
try
{
if (bool)
{
//DoSomething
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
Por que meu check-in na variável booleana "bool" resulta em uma exceção? Não deveria simplesmente passar da declaração if quando "vê" que não é verdade? Quando removo a instrução if ou verifico se NÃO é nulo, a exceção desaparece.
if (bool == Boolean.TRUE)avalia false sem gerar uma exceção. Não tenho certeza se isso foi intencional no caso que acabei de encontrar.
boolser nullOR se Booleanfosse construído explicitamente (e não como referência Boolean.TRUE). Então não é recomendado; ao contrário do if (Boolean.TRUE.equals(bool))que funcionaria conforme o esperado, incluindo manipulação segura de nullvalor.