인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

궁금이님의 프로필 이미지
궁금이

작성한 질문수

실전! Querydsl

스프링 데이터 페이징 활용2 - CountQuery 최적화

왜 getPage 할 때 람다식은 경고를 주는데, 더블콜론은 경고를 주지 않나요?

작성

·

353

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
()->countQuery.fetchOne() 이나

countQuery::fetchOne()나 똑같다고 생각했는데 아닌가요?

 

 

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 궁금이님

도움을 드리고 싶은데요.

어떤 경고를 주는지 자세히 설명해주시겠어요?

감사합니다.

궁금이님의 프로필 이미지
궁금이
질문자

return PageableExecutionUtils.getPage(result, pageable, countQuery::fetchOne);

이 부분에서,

return PageableExecutionUtils.getPage(result, pageable, ()->countQuery.fetchOne());

이렇게 하면 ()->countQuery.fetchOne()

이 부분이

Lambda can be replaced with method reference

Unboxing of 'countQuery.fetchOne()' may produce 'NullPointerException'

 

이렇게 Null일 수도 있다고 뜹니다.

그 경고라는 것이 fetchResults() 했을 때 처럼 누런색으로 색칠됩니다.

imageNull일수도 있다는 것은 이해하겠는데, 근데 사실 똑같은거라 countQuery::fetchOne 이것도 그럼 똑같이 Null 일수도 있어야 하지 않나..? 라고 생각하는데

image이거는 아무 표시도 안해줍니다.

 

그냥 더블콜론에 대해 인텔리제이가 놓친부분이라고 생각하면 될까요? 아니면 둘이 뭔가 다른 점이 있는걸까요?

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 궁금이님

이 부분은 결과적으로 같은 코드를 호출하는데요.

이 부분은 정확하지는 않지만 아마도 IntelliJ IDEA에서 람다 표현식 일 때 더 엄격하게 체크를 하는 것으로 추정됩니다.

혹시 정확한 정보를 알고 계신 분 있으면 답변 남겨주세요.

감사합니다.

궁금이님의 프로필 이미지
궁금이

작성한 질문수

질문하기