제안&정리

[JAVA] Optional map

따뜻한 세상을 만드는 개발자 2023. 1. 15. 23:30

어떤 객체를 사용하다보면

    1. null 이 아닌 경우에 다른 객체로 변환

    2. null 인 경우에는 기본값을 사용

하고 싶을 때가 있습니다.

AS IS

가장 기본적인 방법인 if문이나 3항 연산자로 처리하면 아마도 아래와 같은 코드일텐데요.

var foo = bar != null ? Foo.from(bar) : null;

이런 처리가 많아지면 가독성이 나빠집니다..!

 

Optional로 처리해볼까 해서 Optional의 ifPresent를 사용해도 크게 달라지지 않습니다.

var foo = optinalBar.ifPresent() ? Foo.from(optionalBar.get()): null;

TO BE

해당 요구사항은 아래와 같이 Optional map 을 사용하면 가독성 좋게 변환할 수 있습니다.

var foo = optionalBar.map(Foo::from).orElse(null);