• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

23.12.04 06:49 작성 조회수 200

0

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

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

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

 

 

답변 1

답변을 작성해보세요.

0

안녕하세요. 궁금이님

도움을 드리고 싶은데요.

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

감사합니다.

궁금이님의 프로필

궁금이

질문자

2023.12.04

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에서 람다 표현식 일 때 더 엄격하게 체크를 하는 것으로 추정됩니다.

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

감사합니다.