我在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表达式与功能接口结合确定。但是在那之前写的是什么?是否通过按位运算强制转换返回类型?我不明白 据我所知,按位仅适用于数字。我在哪里可以更详细地了解这种情况?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句