[Spring] Optional 처리

류넹·2024년 3월 19일
2

Spring

목록 보기
39/50

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일 때만 사용하자.

✔️ 주요 API

  1. static <T> Optional<T> empty()
    • null이 저장된 Optional객체가 반환된다.

  2. static <T> Optional<T> of(T value)
    • null이 아닌 value객체가 저장된 Optional객체가 반환된다.

  3. static <T> Optional<T> ofNullable(T value)
    • value는 null일 수도 있고 null이 아닐 수도 있는 값이 저장된 Option객체가 반환된다.

  4. boolean isEmpty()
    • Optional객체에 null이 저장되어 있으면 true를 반환한다.

  5. boolean isPresent()
    • Optional객체에 null이 아닌 값이 저장되어 있으면 true를 반환한다.

  6. T get()
    • Optional객체에 저장된 값을 반환한다.

  7. T orElse(T other)
    • Optional객체에 객체가 저장되어 있으면 그 객체가 반환되고, null이 저장되어 있으면 other에 해당하는 객체가 반환된다.




여러 건을 조회할 때 반환값 : List<T>
-> 객체가 비어있어도 그냥 비어있는 List가 반환됨

한 건을 조회할 때 반환값 : Optional<T>
-> 객체가 비어있으면 null이 나올 수 있기 때문에

profile
학습용 커스터마이징 간단 개발자 사전

0개의 댓글