다음 코드가 있습니다.
Boolean bool = null;
try
{
if (bool)
{
//DoSomething
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
부울 변수 "bool"을 확인한 결과 왜 예외가 발생합니까? 그것이 사실이 아니라고 "보면"if 문을 지나서 바로 뛰어 넘어서는 안됩니까? if 문을 제거하거나 null이 아닌지 확인하면 예외가 사라집니다.
if (bool == Boolean.TRUE)은 예외를 생성하지 않고 거짓을 평가합니다. 내가 방금 찾은 경우에 이것이 의도적 인 것인지 확실하지 않습니다.
bool인 null경우, 또는 Boolean(참조로 명시되지 제조 하였다 Boolean.TRUE). 따라서 권장하지 않습니다. if (Boolean.TRUE.equals(bool))안전한 취급 null가치를 포함하여 예상대로 작동하는 것과 반대로 .