본문 바로가기
Development/Spring

java.util.Optional T 클래스

by 메정 2021. 9. 23.

Optional 객체의 생성

of() 메소드나 ofNullable() 메소드를 사용하여 Optional 객체를 생성

  • of() : null이 아닌 명시된 값을 가지는 Optional 객체를 반환
    • null이 저장될 경우, NullPointException 발생
  • ofNullable() : 명시된 값이 null이 아니면 명시된 값을 가지는 Optional 객체를 반환하며, 명시된 값이 null이면 비어있는 Optional 객체를 반환
    • null 값이 발생된 가능성이 있을 경우 사용
Optional<String> opt = Optional.ofNullable("자바 Optional 객체");
System.out.println(opt.get());
  • empty() : Optional 객체를 null로 초기화

Optional 객체에 접근

get() 메소드를 사용하여 Optional 객체에 저장된 값에 접근

Optional 객체에 저장된 값이 null이면, NoSuchElementException 예외가 발생

isPresent() 메소드를 사용하여 null 여부를 확인하는게 안전

Optional<String> opt = Optional.ofNullable("자바 Optional 객체");

if(opt.isPresent()) {
    System.out.println(opt.get());
}

모든 if-else 가능하면 블록을 만들어주는게 좋음.

사소한 실수로 로직에 문제가 발생할 수 있음

null 대신 대체 값 지정하기

  1. orElse() : 저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 값을 반환
  2. orElseGet() : 저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 람다 표현식의 결괏값을 반환
  3. orElseThrow() : 저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 예외를 발생

Optional 클래스의 메소드

gd2

출처

댓글