Может кто-нибудь объяснить, как возможно, что я получаю исключение из null-указателя, выведенное из этой строки кода:
if (data != null && data.isActive()) {
Тело метода isActive() справедливо:
public Boolean isActive()
{
return active;
}
Спасибо заранее.
В java есть вещь под названием autoboxing, когда примитивные значения обертываются типами объектов и наоборот.
Итак, в вашем коде есть метод:
public Boolean isActive()
{
return active;
}
обратите внимание, что вы возвращаете Boolean
(тип объекта), а не Boolean
(примитивный тип).
и возвращаемое значение будет использоваться в вашем операторе if.
if (data != null && data.isActive()) {
когда java встречает data.isActive()
в вашем выражении if
, он пытается преобразовать значение Boolean в примитивное логическое значение, чтобы применить его для вашей логической операции.
Но ваша переменная active
внутри вашего метода isActive()
равна null, поэтому java не может удалить эту переменную до Boolean
примитивного значения, и вы получите Null pointer exception
.
NPE
выбрасывается внутри илиmethod()
?