Извлечение значения из контейнера в Java
Метод get отдает значение, если оно есть.
На пустом контейнере он бросает
NoSuchElementException. Его оставляют для
случаев, когда пустота уже отсечена проверкой или
логикой выше по коду.
После isPresent вызов get безопасен:
import java.util.Optional;
Optional<Integer> code = Optional.of(200);
if (code.isPresent()) {
System.out.println(code.get());
}
В новом коде чаще обходятся без get: запасное
значение, лямбда-поставщик или цепочка map
не требуют явного разыменования. get уместен
в коротком фрагменте после проверки или в учебном
примере, где важно показать само значение внутри.
Пустой контейнер и прямой get для контраста:
import java.util.Optional;
Optional<String> gap = Optional.empty();
// gap.get(); // NoSuchElementException
System.out.println(gap.isEmpty());
Метод String label(Optional<String> title)
должен вернуть значение, если оно есть, иначе
строку "untitled". Проверьте метод
на заполненном и пустом контейнере.