Objects.requireNonNull()
Проверяет, что значение не null, и сразу бросает NullPointerException с понятным сообщением.
Доступно с: Java 7
Синтаксис
static <T> T requireNonNull(T obj, String message)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| obj | T | Проверяемое значение. |
| message | String | Текст ошибки. Можно не указывать. |
Возвращаемое значение
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.