728x90
orElse
와orElseGet
의 차이점은 메서드가 실행되는 시점입니다.
String email = userRepository.findById(id)
.map(User::getEmail)
.orElse("Unknown");
위 코드에서는orElse
를 사용하여 "Unknown"을 반환하도록 설정하였습니다. 만약orElseGet
을 사용한다면 아래와 같이 작성할 수 있습니다.
String email = userRepository.findById(id)
.map(User::getEmail)
.orElseGet(() -> {
logger.warn("User email is not found. Returning default email.");
return "unknown@example.com";
});
위 코드에서는 orElseGet
을 사용하여, Optional 객체가 비어있을 경우에만 로그를 출력하고, "unknown@example.com
"을 반환하도록 설정하였습니다.
내저장소 바로가기 luxury515
'Back-end > 기타' 카테고리의 다른 글
equals()와 hashCode() 에 대한 고찰 (0) | 2023.04.13 |
---|---|
Optional 클래스(2) : ispresent() vs ifpresent() 차이 (0) | 2023.04.11 |
AI는 과연 어디까지 선을 넘을까? (0) | 2022.12.13 |
웹 화면 전체를 회색으로 변하게 하는 가장 효율적인 방법은? (0) | 2022.12.09 |
AWS KMS 관련 세팅 (0) | 2022.12.07 |