• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

코드 질문있습니다.

22.05.04 22:42 작성 조회수 139

0

List<String> collect2 = names.stream().filter(String::startsWith("k")).map(String::toUpperCase)

위 코드에서 .filter(String::startsWith("k"))  해당 부분이 에러가 나는데요, 왜 메소드 레퍼런스 방식이 에러가 나는것인지 모르겠습니다 .

.filter(s -> s.startsWith("k")) 는 에러나지 않음. . 

toUppercase 도  static 메소드가 아닌데 에러나지 않고 startsWith 은 에러가 나는것일까요..?

제가 무엇을 제대로 모르고 있는것일까요..?

답변 1

답변을 작성해보세요.

0

첫번째 메서드 레퍼런스는 "static 메서드 레퍼런스"로 인식하고 두번째꺼는 "임의 객체에 대한 메서드 레퍼런스"로 인식해서 그렇습니다.  이 중에서 "임의 객체에 대한 레퍼런스"가 사실 조금 복잡한데 그 부분에 대해서 조금 더 집중적으로 학습을 해보시기 바랍니다.