isPresent()
목적
- Optional 객체 내부의 값이 존재하는지 확인하는 메서드
반환 값
- 값이 존재하면 True
- 값이 존재하지 않으면 False
Optional<User> user = userRepository.findById(id);
if (user.isPresent()) {
log.info("사용자: {}, 조회성공", user.name);
} else {
log.error("조회 실패");
}
ifPresent()
목적
- Optional 객체 내부의 값이 존재할 경우에만 특정 동작을 수행하는 메서드
반환 값
Optional<User> userInfo = userRepository.findById(id);
userInfo.ifPresent(user -> log.info("사용자: {}, 조회성공", user.name);
isPresent() vs ifPresent()
차이점
- isPresent() 는 Optional 안에 값이 있는지 확인하는 메서드이고, ifPresent() 는 값이 있을 때 특정 작업을 실행하는 메서드이다.
ifPresentOrElse()
목적
- Optional 객체 내부의 값이 존재할 경우 특정 동작을 수행하고, 값이 없을 경우 다른 동작을 수행하는 메서드
Optional<User> userInfo = userRepository.findById(id);
userInfo.ifPresentOrElse(
user -> log.info(user -> log.info("사용자: {}, 조회성공", user.name);
() -> log.error("조회실패");
);