最近在讀lambda表達(dá)式相關(guān)的java源碼,在Comparator的靜態(tài)方法里發(fā)現(xiàn)有不少這種類(lèi)似的寫(xiě)法
java.util.Comparator
...
public static <T> Comparator<T> comparingInt(ToIntFunction<? super T> keyExtractor) {
Objects.requireNonNull(keyExtractor);
return (Comparator<T> & Serializable)
(c1, c2) -> Integer.compare(keyExtractor.applyAsInt(c1), keyExtractor.applyAsInt(c2));
}
其中return (Comparator<T> & Serializable)應(yīng)該是表示類(lèi)型強(qiáng)轉(zhuǎn),但是這里為什么不直接轉(zhuǎn)換成Comparator<T>,而要用邏輯與符號(hào)?
1 回答

偶然的你
TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
這個(gè)表示強(qiáng)轉(zhuǎn)成Comparator<T>
和Serializable
可以看下這個(gè)解釋
添加回答
舉報(bào)
0/150
提交
取消