Optional<T>
- Java8에 새로 추가된 API
- 프로그램 실행과정에서 발생하는 NullPointerException을 피하기 위한 API
- null이 올 수 있는 값을 감싸는 Wrapper 클래스
Optional<T>
를 반환하면 언제나 null이 아닌 객체를 반환할 수 있어서 NullPointerException을 피할 수 있다.Optional<T>
는 클래스이기 때문에 다양한 메소드를 제공한다.// 값이 null인 Optional 객체 생성하기
Optional<User> optional = Optional.empty();
boolean present = optional.isPresent(); // present : false
boolean empty = optional.isEmpty(); // empty : true
// 값이 있는 Optional 객체 생성하기
User user = new User();
Optional<User> optional = Optional.of(user);
boolean present = optional.isPresent(); // present : true
User user = optional.get(); // get() 메소드는 Optional객체에 저장된 값을 반환한다.
// isPresent()가 true일 때만 사용하자.
static <T> Optional<T> empty()
static <T> Optional<T> of(T value)
static <T> Optional<T> ofNullable(T value)
boolean isEmpty()
boolean isPresent()
T get()
T orElse(T other)
여러 건을 조회할 때 반환값 :
List<T>
-> 객체가 비어있어도 그냥 비어있는 List가 반환됨
한 건을 조회할 때 반환값 :Optional<T>
-> 객체가 비어있으면 null이 나올 수 있기 때문에