자바 Optional

Sungmin·2023년 8월 18일
0

자바 기본 개념

목록 보기
9/21

Optional

null 또는 값을 감싸서 NPE(NullPointerException)로부터, 부담을 줄이기 위해 등장한 Wrapper 클래스이다.
단, 잘못사용하면 성능저하된다.
결과가 null이 될 수 있으며, null에 의해 오류가 발생할 가능성이 매우 높을 때 반환 값으로만 사용되어야 한다.

Optional 객체 생성

Optional<String> optional = Optional.ofNullable(getName());
String name = optional.orElse("anonymous"); //값이 없으면 anonymous 반환

Optional 객체 접근

get() 메서드를 사용하면 Optional객체에 저장된 값에 접근할 수 있다.
만약 Optional객체에 저장된 값이 null이면, NoSuchElementException 예외 발생한다.
따라서 get()메서드를 호출하기 전에 isPresent() 메서드를 사용하여 Optional객체에 저장된 값이 null 인지 아닌지 확인한 후 호출하는 것이 좋다.

Optional<String> opt = Optional.ofNullable("자바 Optional 객체");
if (opt.isPresent()) {
	System.out.println(opt.get());
}

null대신 대체할 값 지정 방법

  1. orElse(): 저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 값을 반환

  2. orElseGet(): 저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 람다표현식의 결과가 반환

  3. orElseThrow(): 저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 예외를 발생

profile
Let's Coding

0개의 댓글