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

这些通配符是多余的吗?

这些通配符是多余的吗?

一只名叫tom的猫 2023-08-04 18:58:41
我有两个使用通配符泛型的方法示例。第一个例子:public static <T extends Comparable> T findMax(List<T> list)第二个例子:public static <T extends Comparable<? super T>> T findMax(List<? extends T> list)我想知道这两个例子是否多余。如果是,为什么?
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

这两个示例告诉您不同的事情,因此它们并不多余,它们提供了不同的信息并以不同的方式限制类型。

public static <T extends Comparable> T findMax(List<T> list)

在此示例中,您告诉T变量可以是实现或扩展的任何类型Comparable(如果它是类或接口)

public static <T extends Comparable<? super T>> T findMax(List<? extends T> list)

在此示例中,您告诉类型T应该扩展可比较的类型,并且还告诉类型必须是(内部可比较的)的超类,但它可以是列表中的T子类型。T


查看完整回答
反对 回复 2023-08-04
?
鸿蒙传说

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

两个通配符都有所不同。

第一个表示 T 或 T 的超类型必须实现 Comparable 接口。第二个说你可以使用 T 类型或 T 子类型的对象列表。


查看完整回答
反对 回复 2023-08-04
  • 2 回答
  • 0 关注
  • 111 浏览

添加回答

举报

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