为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

牧羊人nacy 2019-01-04 06:59:22
看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()); } 看不懂这种写法。求解释!
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

(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表达式

查看完整回答
反对 回复 2019-02-18
  • 1 回答
  • 0 关注
  • 474 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信