java - 有没有办法使用 Java 中的接口(interface)来绑定(bind)泛型类型?

标签 java generics bounded-wildcard

我正在尝试创建一个通用列表,该列表使用.compareTo()对输入到其中的项目进行排序。类型的方法。然而,我在第一行就遇到了问题。由于类型必须是 implements Comparable<T> 之一,有什么办法可以强制执行吗?我认为语法:

public class GenList<T implements Comparable<T>>{
//Class body.
}

行不通。有什么建议么?提前致谢!

最佳答案

我知道这有点违反直觉,但为此你可以写 extends而不是implements :

public class GenList<T extends Comparable<T>>{
//Class body.
}

(请注意,我还将 ? 更改为 T ,我认为这就是您的意思。引用可以具有类型 GenList<?> 或类型 GenList<? extends Comparable<String>> 或其他类型,但它不会使将类本身声明为采用通配符参数是有意义的。)

关于java - 有没有办法使用 Java 中的接口(interface)来绑定(bind)泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14000106/

相关文章:

java - StdIn.readString() 来自 Eclipse 中的 algs4 普林斯顿算法类(class)

c# - 使用 Int64 进行通用转换

java - 将具体的 EnumMap 对象列表传递给通用 EnumMap 参数列表会导致编译错误

java - 泛型/参数化类 Java 命名空间

java - 使用 Java 泛型时如何解决此通配符捕获问题?

java - 是否需要在直通方法中使用有界通配符泛型?

java - 使用嵌入式 R 代码运行和调试 JAVA 程序的结果不同

java - Pervasive 8 中的案例陈述

java - ByteArrayOutputStream 的数字字符串

java - 如何使用 "extends"使用具有排他性绑定(bind)的泛型?