Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Objects.requireNonNull()

Проверяет, что значение не null, и сразу бросает NullPointerException с понятным сообщением.

Доступно с: Java 7

Синтаксис

static <T> T requireNonNull(T obj, String message)

Параметры

ПараметрТипОписание
objTПроверяемое значение.
messageStringТекст ошибки. Можно не указывать.

Возвращаемое значение

TТо же значение, если оно не null — поэтому вызов удобно писать прямо в присваивании.

Примеры

Проверка аргумента в конструкторе:

class User {
    final String name;
 
    User(String name) {
        this.name = Objects.requireNonNull(name, "name must not be null");
    }
}
 
void main() {
    IO.println(new User("Anna").name);
    try {
        new User(null);
    } catch (NullPointerException e) {
        IO.println(e.getMessage());
    }
}

Результат:

Anna
name must not be null

Значение по умолчанию вместо null — requireNonNullElse() (Java 9):

void main() {
    String nickname = null;
    IO.println(Objects.requireNonNullElse(nickname, "guest"));
}

Результат:

guest

Примечания

Ошибка возникает сразу при создании объекта, а не позже, когда null «выстрелит» в другом месте программы, — так проще найти причину.

См. также

  • Objects.isNull() — Проверяет значение на null; парный метод nonNull() — наоборот.
  • throw — Бросает исключение и прерывает выполнение метода.

Вопросы и ответы по теме

В учебнике

  • Инкапсуляция — Инкапсуляция в Java: модификатор private, геттеры и сеттеры, проверка данных и поля final.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.