soh*_*ham 5 java arrays generics
我写了以下代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
问题出在这一行:if(array[i] > max).
我知道Java >在未知/任意类的情况下无法理解运算符.
同时,我不想为我知道将要发送的类的对象编写不同的方法.
有解决方法吗?
您需要更改T到T 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));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
937 次 |
| 最近记录: |