В Java 8 есть метод
1 |
public static <T> Optional<T> of(T value) |
Но также есть метод
1 |
public static <T> Optional<T> ofNullable(T value) |
Какая между ними разница? Разница в том, что Optional.of бросит исключение NullPointerException, если ему передать значение null в качестве параметра. Optional.ofNullable вернёт Optional, не содержащий значение, если ему передать null.
Примеры:
1 2 |
Integer value = null; Optional<Integer> optional1 = Optional.of(value); // throws NullPointerException |
1 2 3 4 |
Integer value = null; Optional<Integer> optional1 = Optional.ofNullable(value); // returns // Optional with // empty value |
Об использовании Optional я уже писал в прошлой статье.