[TrubleShooting] Cannot invoke "java.util.List.stream()" because the return value of ~ is null

CodeKong의 기술 블로그·2023년 12월 12일
0

SPRING BOOT

목록 보기
19/24

프로젝트를 하는 도중 Cannot invoke "java.util.List.stream()" 에러가 나와 기초 자바에 대한 새로운 지식을 얻게 되었다

나는 getReviewList로 List를 얻어 stream을 사용했는데 이부분에서 List값에 아무것도 없어서 에러를 반환하였다.

찾아보니 List가 Null인 stream을 사용할 수 없고 NullPointerException을 발생시킨다.

그래서 따로 null값 검증을 해주어야 한다고 하였고 Optional의 ofNullable을 사용하여 null값 체크를 할 수 있었다.

그래서 이렇게 반환된 값이 null인지 체크해주고 null이라면 Collection의 emptyList를 반환하게 해주고 정상일 시 stream.~를 동작하게 해주었다.

하지만 여러 값에 적용하려다보니 가독성이 떨어져서 따로 메소드로 빼주었다.
이때 다양한 값이 들어갈 수 있다보니 제네릭을 사용하게 하였다.



근데 생각해보니 JPA의 findAll은 null이여도 바로 stream 사용가능 하던데,,,
하고 찾아보니 상위 메소드에 처리해주는 로직이 있다고 한다..

0개의 댓글