Optional

3653 단어 SpringJavaJPAJPA

Optional

Java 8에 추가됨. null일 수도 있는 객체를 감싸는 일종의 Wrapper class
반복적인 null 체크를 줄일 수 있다.
Spring Data JPA 사용 시 Repository에서 리턴 타입을 Optional로 바로 받을 수 있다.

🎨 Optional 객체 생성

1. 비어있는 객체로 생성, Member 객체는 null
Optional<Member> optMember = Optional.empty();
2. 인자를 담고 있는 객체로 생성, 인자가 null일 경우 NullPointerException이 발생할 수 있음
Optional<Member> optMember = Optional.of(member);
3. null일수도 / 아닐수도 있는 객체를 담아 생성
Optional<Member> optMember = Optional.ofNullable(member);

🔍 Optional 객체 접근

1. Optional 내부에 담긴 객체를 반환
  • null일 경우 NoSuchElementException 발생
  • isPresent() 로 체크 후 사용
Member member = optMember.get();
2. 담긴 객체가 null인 경우 예외, 아닌 경우 객체 반환
  • 인자로 넘겨준 함수형 인자를 통해 생성된 예외 발생
Member member = optMember.orElseThrow(NullPointerException::new);
3. 담긴 객체가 null인 경우 인자의 객체, 아닌 경우 담긴 객체 반환
Member member = optMember.orElse(member1);

좋은 웹페이지 즐겨찾기