public static<T> Comparator<T> comparingDouble(ToDoubleFunction<? super T> keyExtractor) {
Objects.requireNonNull(keyExtractor);
return (Comparator<T> & Serializable)
(c1, c2) -> Double.compare(keyExtractor.applyAsDouble(c1), keyExtractor.applyAsDouble(c2));
}
(Comparator<T> & Serializable) 是什么意思?
&有什么作用?
(Comparator<T> & Serializable) 表示返回的对象是同时实现了Comparator接口和Serializable接口的对象。这意味着返回的Comparator对象不仅可以用于比较元素,还可以被序列化成字节流进行传输和存储。
& 的作用是将多个接口合并成一个新的接口。在这种情况下,返回的Comparator对象同时具有Comparator和Serializable接口的功能。