• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

메서드 레퍼런스

22.08.17 21:44 작성 조회수 299

1

springClasses.stream().filter(Predicate.not(OnlineClass::isClosed))

이부분에서

isClosed는 static함수가 아닌데
그러면 객체::isClosed가 되어야하는거 아닌가요??
왜 타입::isCloese가 된건가요??

답변 1

답변을 작성해보세요.

1

메서드 레퍼런스에 총 네가지 형태가 있는데요. 그 중에서 인스턴스 메서드라 하더라도 "타입::메서드" 형태로, 지금 예로 들어주신 Online::isClosed와 같이 표현할 수 있는 방법을 "임의 객체의 인스턴스 메서드 참조"라고 합니다. 말 그대로 "해당 클래스 타입의 어떤 객체가 가지고 있는 해당 메서드"를 가리키는 겁니다. 즉, 여기서는 OnlineClass 라는 타입의 객체가 가지고 있는 isClosed 라는 인스턴스 메소드를 가리키는 거죠.