Метод requireNonNull
Метод requireNonNull класса Objects проверяет
переданный объект на null. Если объект не равен
null, метод возвращает его обратно. Если же объект
равен null, метод выбрасывает исключение
NullPointerException. В первый параметр мы передаем
проверяемый объект. Вторым параметром можно передать
сообщение об ошибке, которое будет использовано при
создании исключения. Существует также перегрузка, которая
вместо строки принимает функцию-поставщик Supplier
для ленивого создания сообщения об ошибке.
Синтаксис
Objects.requireNonNull(obj)
Objects.requireNonNull(obj, message)
Objects.requireNonNull(obj, messageSupplier)
Пример
Давайте передадим в метод requireNonNull объект,
который не равен null, и выведем результат:
import java.util.Objects;
public class Main
{
public static void main(String[] args)
{
String str = "abcde";
String res = Objects.requireNonNull(str);
System.out.println(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте передадим в метод requireNonNull объект,
который равен null, и посмотрим, какое исключение
будет выброшено:
import java.util.Objects;
public class Main
{
public static void main(String[] args)
{
String str = null;
String res = Objects.requireNonNull(str);
System.out.println(res);
}
}
Результат выполнения кода:
Exception in thread "main" java.lang.NullPointerException
Пример
Давайте передадим вторым параметром сообщение об ошибке,
чтобы при выбросе исключения было понятно, какой именно
объект оказался равен null:
import java.util.Objects;
public class Main
{
public static void main(String[] args)
{
String str = null;
String res = Objects.requireNonNull(str, "str must not be null");
System.out.println(res);
}
}
Результат выполнения кода:
Exception in thread "main" java.lang.NullPointerException: str must not be null
Пример
Давайте используем перегрузку с Supplier, чтобы
сообщение об ошибке создавалось только в момент выброса
исключения:
import java.util.Objects;
public class Main
{
public static void main(String[] args)
{
String str = null;
String res = Objects.requireNonNull(str, () -> "str must not be null");
System.out.println(res);
}
}
Результат выполнения кода:
Exception in thread "main" java.lang.NullPointerException: str must not be null
Смотрите также
-
класс
NullPointerException,
которое выбрасывает этот метод -
метод
requireNonNullElse,
который возвращает значение по умолчанию вместо null -
метод
isNull,
который проверяет объект на null -
метод
nonNull,
который проверяет, что объект не равен null