Stream.max
的api需要一个Comparator<? super T>
类型的参数,而对于Comparator
,唯一的抽象方法是
int compare(T o1, T o2)
但是Double::compareTo
,compareTo
API是
public int compareTo(Double anotherDouble)
为什么只提供一个参数,为什么Double::compareTo
可以用作Stream的参数
Optional<T> max(Comparator<? super T> comparator)
以下MyComparator
以下实现了Comparator
。它有两个参数。与lambda表达式(d1,d2) -> d1.compareTo(d2)
相同与方法参考Double::compareTo
签出oracle documentation。这是对instance
您可以使用这两种方法之一来比较Double
检查以下代码: