为什么Double :: compareTo可以用作Stream.max(Comparator super T>比较器)的参数

问题描述 投票:2回答:3

Stream.max的api需要一个Comparator<? super T>类型的参数,而对于Comparator,唯一的抽象方法是

int compare(T o1, T o2)

但是Double::compareTocompareTo API是

public int compareTo(Double anotherDouble)

为什么只提供一个参数,为什么Double::compareTo可以用作Stream的参数

Optional<T> max(Comparator<? super T> comparator)
java java-8 java-stream comparator method-reference
3个回答
-1
投票

以下MyComparator以下实现了Comparator。它有两个参数。与lambda表达式(d1,d2) -> d1.compareTo(d2)相同与方法参考Double::compareTo


6
投票

签出oracle documentation。这是对instance


-1
投票

您可以使用这两种方法之一来比较Double


-1
投票

检查以下代码:

© www.soinside.com 2019 - 2024. All rights reserved.