java - 这些通配符是多余的吗?

标签 java generics bounded-wildcard

我有两个使用通配符泛型的方法示例。

第一个例子:

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

第二个例子:

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

我想知道这两个例子是否多余。如果是,为什么?

最佳答案

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

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

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

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

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

关于java - 这些通配符是多余的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57976922/

相关文章:

c# - 该类型必须是引用类型才能将其用作泛型类型或方法中的参数 'T'

带有通配符的 Java 泛型

java - 类型与有界通配符不匹配? super 类型

计算目录大小的Java程序不断抛出NPE

java - 如何计算 Web 服务器中 Web 容器线程的最大和最小数量,例如 Tomcat ,是

java - SOAP 消息和 WSDL 之间的区别?

java - Play Framework 1.2.6 连接多个数据库

java泛型方法调用转换错误

c# - 有没有办法告诉我在运行时使用的是哪个枚举?

java - 具有最终上限的通配符