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

里森科·安德里(Lysenko Andrii)

我在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));
}

任何人都可以解释return语句之后发生了什么魔术吗?好的,该方法的结果由lambda表达式与功能接口结合确定。但是在那之前写的是什么?是否通过按位运算强制转换返回类型?我不明白 据我所知,按位仅适用于数字。我在哪里可以更详细地了解这种情况?

圆环虫

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

引用自:assylias在这里答案

文献资料

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章