더북(TheBook)

함수를 받는 ifPresent 버전을 호출할 때는 값이 리턴되지 않는다. 따라서 결과를 처리하고 싶은 경우에는 대신 map을 사용한다.


Optional<Boolean> added = optionalValue.map(results::add);


 

이제 added는 세 가지 값(optionalValue가 존재하는 경우 Optional로 감싼 true 또는 false 값, 존재하지 않는 경우 빈 Optional) 중 하나를 가진다.

 

<Note>

map 메서드는 “2.3 filter, map, flatMap 메서드” 절에서 살펴본 Stream 인터페이스의 map 메서드에 대응한다. 옵션 값을 간단하게 크기가 0 또는 1인 스트림으로 생각하자. 결과는 다시 크기 0 또는 1이 되며, 결과가 1인 경우 함수가 적용된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.