看Java的源碼Map的接口Entry<K,V>時看不懂其內(nèi)方法的書寫方式
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貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個贊
(Comparator<Map.Entry<K, V>> & Serializable)表示將結(jié)果強(qiáng)制轉(zhuǎn)換為一個實(shí)現(xiàn)了Serializable接口的Comparator對象
這是Java8的語法,表示同時強(qiáng)制轉(zhuǎn)換為多種類型
(c1, c2)->c1.getKey().compareTo(c2.getKey())相當(dāng)于匿名內(nèi)部類:
new Comparator<T>(){
@Override
public int compare(T c1, T c2) {
return c1.getKey().compareTo(c2.getKey());
}
}
同樣是Java8的語法,Lambda表達(dá)式
添加回答
舉報
0/150
提交
取消