개발일지/2023_한이음

[개발]🎁배운점 - ifPresent() 메서드

기억지기 개발자 2023. 6. 21. 18:40
Optional<Review> entity = repository.findById(id);

이러한 코드의 다음 줄에 entity.setContent를 사용하고자 했는데 setter가 사용이 안 되는 것이었다!! 

분명히 Review 엔티티에 setter가 있는데도 사용이 안 되니 굉장히 난감했다.

 

알고보니...

Optional을 사용한 경우에 바로 setter의 사용이 불가능하고 

entity.ifPresent(review -> {
            review.setDeleted(true);
        });

이런 식으로 isPresent 메소드 + 람다식을 사용해야 비로소 setter를 사용할 수 있는 것이다~~ 

 

ifPresent 메서드는 Optional 객체에 값이 존재하는 경우에만 지정한 동작을 수행할 수 있습니다. 이를 통해 값의 유무를 확인하고, 값이 있는 경우에만 해당 동작을 수행할 수 있습니다. ifPresent 메서드를 사용하여 값의 존재 여부를 검사하고, 필요한 동작을 수행함으로써 NullPointerException 을 방지하고 안전한 코드를 작성할 수 있습니다.