java 泛型 : declaration of recursive types

标签 java generics

Effevtive Java 中,我看到一个声明:public static <T extends Comparable<T>> T max(List<T> list) , 类型变量 T是一种可以与自身进行比较的类型。我的问题是当我删除 <T> 时有什么区别?来自 Comparable ?我是说这个public static <T extends Comparable> T max(List<T> list) .

最佳答案

这意味着您将期望一个与 Object 相当的类型,因为 java 在未提供时将泛型推断为 Object

<T extends Comparable> // The generic type for Comparable is inferred as Object as it was not provided.

这意味着提供给列表的类型需要实现 compareTo(Object o) 和实现 Comparable(注意 Comparable< 缺少泛型类型),我认为这不是故意的。

关于java 泛型 : declaration of recursive types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39327662/

相关文章:

c# - 如何知道类型参数是否是动态的?

delphi - 为shortstring声明泛型内联函数const是用户错误,还是编译器错误?

java - 在访问器(getter)方法上使用转换器时出现异常

java - 根据文本内容调整窗口大小

Java: 无法找到或加载主类 Main

java - 未经检查的 Actor : Is there a way to avoid it in this case?

oracle - 重构 PL/SQL : many cursors with same rowtype (in theory)

java - 将 Node 实现为泛型类

java - Kafka设置从主题读取的最大消息数

java - 无法在 Android Studio 中使用 BaseGameActivity