- Optional
- Null-Safe 하기 위해
- Null 을 받더라도
NullPointException
이 나지 않음
- 값의 존재 여부를 판단하지 않고 접근한다면
NullPointerException
는 피해도 NoSuchElementException
가 발생할 수 있음
Optional.orElseX()
로 기본 값을 반환
private String findDefaultName() {
return ...;
}
// AVOID
public String findUserName(Long id) {
Optional<String> optionalName = ... ;
if (optionalName.isPresent()) {
return optionalName.get();
} else {
return findDefaultName();
}
}
// PREFER
public String findUserName(Long id) {
Optional<String> optionalName = ... ;
return status.orElseGet(this::findDefaultName);
}