validation 로직을 테스트하는 도중 아래과 같은 에러를 마주쳤다^^;
이 것은 !
! 존재하지 않는 ! memberId로 member를 조회할 경우 값이 없기 때문에 나타나는 현상이다.
-> get() 메서드 코드를 보면 자바에서는 Optional.get()을 사용했을 때 값이 없다면 No value present 메세지가 출력하는 걸 알 수 있다.
✏️ 해결 1
그래서 Optional 객체에 저장된 값이 null이면 get()메서드를 사용했을 때 No value present 예외가 발생하므로
get()을 호출하기 전에 isPresent() 메서드를 사용하여 Optional 객체에 저장된 값이 null인지 아닌지를 먼저 확인하는 것이 좋다구 한다 ~.~
public Member findMember(Long memberId){
Optional<Member> findMember = memberRepository.findById(memberId);
if(findMember.isPresent())
return findMember.get();
else return null;
}
✏️해결 2
요 링크를 참고하여 orElse() 메서드를 이용해 더 간단하게 코드를 작성해보았다.
Optional<Member> optionalMember = memberRepository.findById(dto.getMemberId());
Member findMember = optionalMember.orElse(null);
나와 같은 경우는 null 값인지 아닌지 판단하는 코드를 추가적으로 작성해주었더니 해결되었다. ... get() 메서드를 사용하기 전에 isPresent() 메서드나 orElse() 메서드로 null 값인지 아닌지 확인하는 방법을 알게되었다 ! 뿌듯 ! 그런데 찾아보니 Optional 객체를 다루는 함수가 더 많이 있다 ... 모르는게 정말 많구.. 공부할게 많아서 행복하다🥸 정말루 ~...
'뚝딱뚝딱 > Java' 카테고리의 다른 글
[Java] 2차원 리스트 다루기 (0) | 2024.04.30 |
---|---|
[Java] 자바의 정석 Chapter 9 java.lang패키지와 유용한 클래스 (0) | 2022.05.23 |
[Java] 자바의 정석 Chapter 8 예외처리 (0) | 2022.05.22 |
[Java] 자바의 정석 Chapter6 ~ Chapter7 (0) | 2022.05.15 |
[Java] 자바의 정석 Chapter1 ~ Chapter5 (0) | 2022.05.13 |