본문 바로가기
programming/JAVA

자바의정석 14장. Optional 정리

by buddev 2022. 2. 24.
  • 객체 생성 : of(), ofNullable()
    • 참조변수의 값이 null일 가능성이 있다면 ofNullable()을 사용
    • of()는 매개변수의 값이 null일 경우 NPE를 발생시킨다.
  • 값 초기화 : empty()
    • null도 가능하지만, empty를 사용하는 것이 바람직하다
  • 값 가져오기 : get(), orElse(), orElseGet(), orElseThrow()
    • 값을 가져올때는 get()을 사용한다
    • 값이 null일 때는 NoSuchElementException이 발생하며, 이를 대비하여 orElse()로 대체할 값을 지정할 수 있다.
      • ex) opt.orElse(""); //값이 null일 경우 ()안의 값인 ""를 반환한다
    • orElseGet() : null일 경우 대체할 값을 반환하는 람다식을 지정할 수 있다.
      • ex) opt.erElseGet(String::new); //() -> new String(); 과 동일하다.
    • orElseThrow() : null일 때 지정한 예외를 발생시킨다.
      • ex) opt.orElseThrow(NullPoilnterException::new); //null일 경우 NPE 발생
  • 각종 연산의 사용
    • Stream처럼 Optional도 filter(), map(), flatMap()등 각종 연산을 사용할 수 있다.
      • 만일 Optional 객체의 값이 null이면, 이 메서드들은 아무 일도 하지 않는다.

댓글