[Jump To SB] | Optional을 사용하는 이유

devH·2023년 3월 27일
0

Java

목록 보기
1/1
post-thumbnail

궁금증

점프투 스프링부트(2-05)를 공부하던중 findById를 통해 데이터를 조회하는 리포지터리의 메서드를 사용하면서 [Optional]은 무엇인가 궁금해졌다.
(왜 객체를 저렇게 받는거지..?) 라고 생각했다.
알아보자!

Optional은 왜 사용해야 할까?

Optional은 null 처리를 유연하게 처리하기 위해 사용하는 클래스라고 한다.
즉, NPE 발생을 방지하기 위함이다.
*NPE(NullPointerException) 실제 값이 아닌 null을 가지고 있는 객체/변수를 호출할 때 발생하는 예외다.

궁금증 해결

id값을 조회할때 객체가 없을경우(Null)를 방지하고자 Optional 클래스를 사용하여 아래와 같이 isPresent로 null이 아닌지를 확인한 후에 get으로 실제 Question 객체 값을 얻어야 한다.

 @Test
    void testJpa() {
        Optional<Question> oq = this.questionRepository.findById(1);
        if(oq.isPresent()) {
            Question q = oq.get();
            assertEquals("sbb가 무엇인가요?", q.getSubject());
        }
    }
profile
'잘'살고 싶은 보통사람

0개의 댓글