Как правильно сравнивать с null в java?

Пользователь

от kenya , в категории: Java , 2 года назад

Как правильно сравнивать с null в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от nelle , 2 года назад

@kenya 

В Java для сравнения ссылочных типов данных, включая null, следует использовать оператор ==.


Например, если у вас есть объект Object obj, то для проверки, равен ли он null, нужно написать:

1
2
3
if (obj == null) {
    // Код, который нужно выполнить, если obj == null
}


Если же вы используете оператор сравнения == с примитивным типом, например int, то сравнение произойдет именно с числовым значением, а не с null. В этом случае можно использовать класс-оболочку Integer, которая позволяет использовать значение null:

1
2
3
4
Integer num = null;
if (num == null) {
    // Код, который нужно выполнить, если num == null
}


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

Пользователь

от otha_marks , 8 месяцев назад

@kenya 

Также в Java для сравнения объектов по их содержимому (с учетом равенства их значений, а не ссылок) следует использовать метод equals(). В данном случае, если вы хотите сравнить объект obj с другим объектом obj2, включая null, можно написать следующее:

1
2
3
if (obj.equals(obj2)) {
    // Код, который нужно выполнить, если obj равен obj2 или оба являются null
}


При использовании метода equals() для сравнения объектов, следует учитывать переопределение этого метода в вашем пользовательском классе (если это не базовый тип данных). В случае отсутствия переопределения, сравнение будет произведено по умолчанию - сравниваются ссылки на объекты.


Таким образом, для сравнения с null в Java, используйте оператор ==, и для сравнения объектов по содержимому - метод equals().