返回值中’&’字符的含义是什么?
public static <T, U extends Comparable> Comparator comparing( Function keyExtractor) { Objects.requireNonNull(keyExtractor); return (Comparator & Serializable) (c1, c2) -> keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2)); }
我感兴趣的部分是: return (Comparator & Serializable)
谢谢你的帮助!
这意味着结果值将被强制转换为Comparator
和 Serializable
(即可序列化的比较器)
请注意,在执行此类转换时,您只能指定一个类(以及无限量的接口),因为类不可能从多个超类inheritance。