본문 바로가기
반응형

orElseGet2

[Error] Cannot invoke "java.util.function.Supplier.get()" because "supplier" is null 개발 중에 아래와 같은 에러가 발생하였다.  NullPointerException: Cannot invoke "java.util.function.Supplier.get()" because "supplier" is null. jpa 에서 쿼리 메서드를 사용했고,예를들어 아래와 같은 코드를 했을때 발생한 에러이다. Member member = memberRepository.findById("string").get(); 가져왔는데 데이터가 null이어서 발생한 에러이다. 해결책은 null을 방지하기 위해 orElseGet 를 추가하는것이다.그럼 아래와 같은 코드로 변하면 된다.Member member = memberRepository.findById("string").orElseGet(null); orElse.. 2024. 10. 31.
Optional – orElse() 와 orElseGet() 이전 포스팅에서 Optional 에 대한 내용을 다룬적이 있다. 자세한 내용은 아래 참고 포스팅 참고 바란다. Optional 은 결국엔 NPE 를 해결하기 위해서 생겨났고, 만약 Null일 경우엔 default 값을 넣어줄수 있는 개념으로 만들어진 함수가 바로 이 orElse / orElseGet 이다. 결국 둘다 null일때 default 를 받을건데 둘의 차이는 어떤것인지 확인해보면 orElse() : T 클래스를 인수로 받음 orElseGet() : T 클래스를 상속받은 하위 클래스를 return해주는 Supplier 함수 인터페이스를 받음 좀더 이해하기 쉽게 예시를 들어서 설명하면 다음과 같다. orElse Optional text = "a"; Sting bb = text.orElse(testM.. 2023. 6. 16.
반응형