java8中,逻辑与 & 符号用在接口类上代表什么意思
本文介绍了java8中,逻辑与 & 符号用在接口类上代表什么意思的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
最近在读lambda表达式相关的java源码,在Comparator的静态方法里发现有不少这种类似的写法
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)
应该是表示类型强转,但是这里为什么不直接转换成Comparator<T>
,而要用逻辑与符号?
解决方案
这个表示强转成Comparator<T>
和Serializable
可以看下这个解释
这篇关于java8中,逻辑与 & 符号用在接口类上代表什么意思的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文