현재 프로젝트를 JAVA 8로 서비스 중이기 때문에 isPresent() 메서드를 사용하여 false일 때 null 처리를 하였었다. (isPresent() 메서드 사용은 지양해야한다. 왜 지양해야 하는지는 검색해보면 많이 나옴)
Optional의 ifPresentOrElse 메서드는 Java 9에서 추가된 메소드이기 때문에 사용할 수 없었는데, 검색 중 spring-data-commons 라이브러리에서 ifPresentOrElse 메서드를 지원하는걸 알게되었다!
아래아 같이 사용하면 된다.
import static org.springframework.data.util.Optionals.ifPresentOrElse;
@Test
public void should_PrintUsername_When_FindUser() {
User user = userRepository.findByUserIdx(1);
ifPresentOrElse(Optional.ofNullable(user), u -> System.out.println(u.getName()), () -> {
throw new IllegalArgumentException("invalid user");
});
}