将可比的实例传递给需要比较器的方法
2022-09-04 21:24:01
Java 8 中的类定义了一个需要参数的方法。下面是方法签名:Stream
max
Comparator
Optional<T> max(Comparator<? super T> comparator)
Comparator
是一个函数接口,它具有具有此签名的抽象方法。通知需要 2 个参数。compare
compare
int compare(T o1, T o2)
该接口具有具有此签名的抽象方法。通知只需要 1 个参数。Comparable
compareTo
compareTo
int compareTo(T o)
在 Java 8 中,以下代码可以完美地工作。但是,我预计会出现一个编译错误,例如“Integer类不定义compareTo(Integer,Integer)”。
int max = Stream.of(0, 4, 1, 5).max(Integer::compareTo).get();
有人能帮助解释为什么可以将 的实例传递给一个方法,即使其方法签名不兼容,该方法也期望一个实例?Comparable
Comparator