gpt4 book ai didi

java - 如何编写泛型 Java 方法并比较方法中泛型类型的两个变量?

转载 作者:搜寻专家 更新时间:2023-10-31 19:27:35 25 4
gpt4 key购买 nike

我写了下面的代码:

private static <T> T getMax(T[] array) {
if(array.length == 0) {
return null;
}

T max = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] > max)
max = array[i];
}
return max;
}

问题出在这一行:if(array[i] > max)

我知道 Java 在未知/任意类的情况下无法理解 > 运算符。

与此同时,我不想为我知道要发送的类的对象编写不同的方法。

有解决方法吗?

最佳答案

您需要更改 TT extends Comparable<T>并使用 compareTo方法。即:

  • private static <T extends Comparable<T>> T getMax(T[] array) , 和
  • if (array[i].compareTo(max) > 0) { ... }

但请注意,您可以使用

maxElement = Collections.max(Arrays.asList(array));

关于java - 如何编写泛型 Java 方法并比较方法中泛型类型的两个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29310847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com