java - 如何比较原语和 Java 泛型?

标签 java generics

我正在学习java泛型。我想使用无界泛型来比较基元。我有以下代码,

public static <T extends Comparable<T>> T max(T x, T y) {
    return x > y ? x : y;
}

但它不会编译。错误是:

The operator > is undefined for the argument type(s) T

最佳答案

要比较两个 Comparable 对象,您必须使用 compareTo,此处为 x.compareTo(y)。你的方法可以这样写

return x.compareTo(y) > 0 ? x : y;

关于java - 如何比较原语和 Java 泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35248671/

相关文章:

Java 将列表类型传递给泛型方法?

java - 这是服务器或客户端上的 Google Endpoints 错误吗?

c# - 我可以在单个泛型类型上指定多个约束吗?

java - 我需要将 JBoss 工具添加到我的 Eclipse,但我使用的是 springtoolsuite (STS)

Java:toString 与字符串连接?

C# - 如何为多级继承层次结构指定泛型类型约束?

java - 将 lambda 转换为 Function<T, R> 失败

java - 按通用属性的属性对对象进行排序

java - 在生产环境中连接 jmx 时出错

java - java中的数据类型字节不允许添加任何文字