如何在Java中实现通用的“max(可比较的a,可比较的b)”函数?
我正在尝试编写一个需要两个 s 的通用 max 函数。Comparable
到目前为止,我有
public static <T extends Comparable<?>> T max(T a, T b) {
if (a == null) {
if (b == null) return a;
else return b;
}
if (b == null)
return a;
return a.compareTo(b) > 0 ? a : b;
}
这无法编译
The method compareTo(capture#5-of ?) in the type Comparable<capture#5-of ?> is not applicable for the arguments (T)
我认为这是在说,in可以被解释为参数a的一种类型,参数b的另一种类型,因此无法比较它们。?
Comparable<?>
我该如何把自己从这个洞里挖出来?