我在java文档中游荡,突然发现了这段代码:
public static <T, U extends Comparable<? super U>> Comparator<T> comparing(
Function<? super T, ? extends U> keyExtractor)
{
Objects.requireNonNull(keyExtractor);
return (Comparator<T> & Serializable)
(c1, c2) -> keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2));
}
任何人都可以解释返回声明之后发生了什么样的魔法?好的,该方法的结果由lambda表达式与功能界面结合确定。但那之前写的是什么?它是通过按位运算转换返回类型吗?我不明白。据我所知,bitwise仅适用于数字。我在哪里可以更具体地阅读这个案例?
答案 0 :(得分:2)
Java 8增加了将lambda转换为匿名交集的能力。
返回类型为Comparator<T>
和Serializable
引自:assylias's回答here
注:的 Java有时会为运营商添加新的语法含义,以保持向后兼容性。