通过按位运算确定返回类型

时间:2015-05-05 19:31:36

标签: java generics

我在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仅适用于数字。我在哪里可以更具体地阅读这个案例?

1 个答案:

答案 0 :(得分:2)

Java 8增加了将lambda转换为匿名交集的能力。 返回类型为Comparator<T>Serializable

引自:assylias's回答here

Documentation

注:的 Java有时会为运营商添加新的语法含义,以保持向后兼容性。