Что должна возвращать проверка на null в Java?

«Что должна возвращать проверка на null в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Проверка на null в Java всегда должна возвращать значение типа boolean (true или false).

Способы проверки:

Способ Возвращает true, если... Пример
Оператор == ссылка равна null obj == null
Оператор != ссылка НЕ равна null obj != null
Objects.isNull(obj) ссылка равна null (удобно для лямбд) Objects.isNull(obj)
Objects.nonNull(obj) ссылка НЕ равна null (удобно для лямбд) Objects.nonNull(obj)

Примеры:

String potentiallyNullString = getStringFromExternalSource();

// Классическая проверка
if (potentiallyNullString == null) {
    System.out.println("Строка не была инициализирована.");
}

// Проверка через утилитный класс (java.util.Objects)
if (Objects.nonNull(potentiallyNullString)) {
    int length = potentiallyNullString.length(); // Безопасный вызов
}

Важное отличие от Optional:

  • Проверка на null — это низкоуровневая операция сравнения ссылки.
  • Optional — это контейнер-обертка, который инкапсулирует возможное отсутствие значения. Для проверки наличия значения в Optional используются методы isPresent() (есть значение) или isEmpty() (значение отсутствует).
    Optional<String> optionalValue = Optional.ofNullable(potentiallyNullString);
    if (optionalValue.isPresent()) { // Аналог Objects.nonNull(...)
    String value = optionalValue.get();
    }

    Использование Optional предпочтительнее для возвращаемых значений методов, так как явно указывает на возможность отсутствия результата.