看Map的内部接口Entry<K,V>时看不懂其内的方法Comparable

看Java的源码Map的接口Entry<K,V>时看不懂其内方法的书写方式

    public static <K extends Comparable<? super K>, V> Comparator<Map.Entry<K,V>> comparingByKey() {
        return (Comparator<Map.Entry<K, V>> & Serializable)
            (c1, c2) -> c1.getKey().compareTo(c2.getKey());
    }

看不懂这种写法。求解释!

牧羊人nacy
浏览 475回答 1
1回答

鸿蒙传说

(Comparator<Map.Entry<K, V>> & Serializable)表示将结果强制转换为一个实现了Serializable接口的Comparator对象这是Java8的语法,表示同时强制转换为多种类型 (c1, c2)->c1.getKey().compareTo(c2.getKey())相当于匿名内部类: new Comparator<T>(){ @Override public int compare(T c1, T c2) { return c1.getKey().compareTo(c2.getKey()); } } 同样是Java8的语法,Lambda表达式
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java