Class Optional<T>
null일 수도 있는 값을 감싸는 Wrapper 클래스이다.
코드를 작성하다보면 빈번하게 볼 수 있는 NPE(NullPointerException)을 방지할 수 있다.
Optional<String> optional = Optional.ofNullable(getName());
String name = optional.orElse("Hello!"); // 값이 없다면 'Hello!' 리턴
//값이 존재하면 로직을 함수형 인자로 넘긴다
Optional.ofNullable(member.getName())
.ifPresent(name -> findMember.setName(name));
boolean value = optional.isPresent(); //값이 존재하는가?
//값이 존재하면 return 하고, 그렇지 않으면 예외를 던진다
Optional.orElseThrow(() ->
new BusinessLogicException(ExceptionCode.MEMBER_NOT_FOUND));
값이 존재한다면 Wrapping 과정을 거치고, null일 경우는 대체 함수롤 호출하므로 성능이 좋지 않다.
감싸는 값이 null이 아니라면 사용하지 않는 것이 좋다.
결과가 null일 수도 있고, null로 인해 오류가 발생할 가능성이 있을 때 반환값으로 사용해야 한다.
📚 Reference
'Back-End > Java' 카테고리의 다른 글
생성자에 매개변수가 많다면 빌더를 고려하라 | Builder pattern, Lombok @builder (0) | 2022.10.15 |
---|---|
[Design Pattern] 디자인 패턴의 정의와 종류 (0) | 2022.09.25 |
StringBuilder의 사용, String으로 변환 (0) | 2022.08.13 |
StringifyJSON (0) | 2022.07.22 |
스레드(Thread) (0) | 2022.07.19 |
댓글