• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

FunctionalInterface 상속 관계 질문

22.08.17 03:59 작성 조회수 171

0

String::compareToIgnoreCase를 변수에 할당하면 BiFunction<String, String, Integer> 타입이 될 줄 알았는데, intellij의 자동완성 기능을 써보니 Comparator<String> 타입이 나왔습니다. 

반대로 Comparator타입 변수에 BiFunction은 할당하지 못하는 걸로 봐서 Comparator가 BiFunction을 상속받고 있는 것 같은데, 실제 코드를 보면 상속과 관련된 부분이 없는 것 같네요.

@FunctionalInterface 어노테이션이 상속관계를 만들어주는 것인지, 아니면 다른 상속 방법이 있는 것인지 궁금합니다.

답변 1

답변을 작성해보세요.

1

음.. 아니요 실제로 Comparator와 BiFuntion 간에는 상속 관계는 없지만 compareToIgnoreCase를 BiFuntion 타입에 할당하는 것은 가능합니다. 이런식으로요.

        BiFunction<String, String, Integer> compareToIgnoreCase = String::compareToIgnoreCase;