Что, если (нуль) оператор вернется в Java?

У меня есть method который имеет Booleanparameter, лайк:

public void method(Boolean parameter){
...
}

Могу ли я просто использовать if(parameter) определить логику? Что, если parameter является null?

3 ответа

Решение

Компилятор превратит ваш

if (parameter)

в

if (parameter.booleanValue())

через авто-распаковку. Так что это должно сказать вам, что будет с nullNullPointerExceptionкак и в любой другой раз, когда вы вызываете метод null).

Если бы вы попробовали это, вы бы увидели NullPointerException

Но Boolean.equals(Object) Javadoc действительно начинается

Возвращает true если и только если аргумент не null и является логическим объектом, который представляет то же логическое значение, что и этот объект.

(мой акцент)

Так что вы могли бы сделать

if (Boolean.TRUE.equals(parameter)) {
    System.out.println("true");
} else {
    System.out.println("false");
}

который я считаю, справится с вашим null дело.

Измените тип данных с Boolean в boolean, boolean является примитивным типом данных и не может быть нулевым.

Другие вопросы по тегам