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

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

박지상님의 프로필 이미지
박지상

작성한 질문수

더 자바, Java 8

메소드 레퍼런스

FunctionalInterface 상속 관계 질문

작성

·

238

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;


 

박지상님의 프로필 이미지
박지상

작성한 질문수

질문하기