Java 8:使用&进行多次转换

kaj*_*acx 9 java casting java-8

我正在研究Comparator#comparing()JDK 1.8 的源代码,并且lambda的渲染对我来说是一个惊喜:

//declaration
{
    Objects.requireNonNull(keyExtractor);
    return (Comparator<T> & Serializable)  // <- this cast here
        (c1, c2) -> keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2));
}
Run Code Online (Sandbox Code Playgroud)

看完之后

如果指定的函数也是可序列化的,则返回的比较器是可序列化的.

和一些玩代码,我弄清楚为什么这个工作,以及为什么如果演员不同,它将无法工作.

我的问题是:这个多重铸造什么(A & B)

通过谷歌搜索java multiple cast我发现只有多个使用铸造(A)(B).是否有关于在JDK中添加此内容的文章1.8