栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java泛型:Collections.max()签名和Comparator

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java泛型:Collections.max()签名和Comparator

Josh Bloch的助记符 PECS 在这里很有用。它代表:

生产者

extends
,消费者
super

这意味着,当一个参数化的类型被传递给的方法将 产生 的实例

T
(它们将从它以某种方式被检索),
? extendsT
应该被使用,因为子类的任意实例
T
也是
T

当将参数化类型传递给方法时,将 使用的 实例

T
(它们将被传递给该方法以执行某些操作),
? superT
因为应将的实例
T
合法地传递给接受某些超类型的任何方法
T
。例如,
Comparator<Number>
可以在上使用
Collection<Integer>
?extends T
将无法正常工作,因为
Comparator<Integer>
不能对进行操作
Collection<Number>

编辑: 要澄清更多关于获取/放置(生产/消费):

public T something();       ^

以上是产生的方法

T

public void something(T t);^

上面是消耗的方法

T

“生产者

extends
,消费者
super
”适用于如何将参数化对象传递给该对象的方法。对于
Collections.max()
,将从中检索项目
Collection
,因此它是生产者。这些项目将作为参数传递给on上的方法
Comparator
,因此它是使用者。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569341.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号