返回值中“&”字符的含义是什么?
问题内容:
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 (Comparator<T> & Serializable)
谢谢你的帮助!
问题答案:
这意味着结果值将被强制转换为Comparator
和 Serializable
(即可序列化的比较器)
请注意,在进行此类转换时,您 只能 指定一个类(和无限数量的接口),因为一个类不可能从一个以上的超类继承。