작성
·
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;