我想修改以下方法,以便它的参数可以是实现Comparable
接口的任何类型。方法的返回类型应与其参数变量的类型相同。
public static int max(int a, int b) {
if (a >b)
return a;
else
return b;
}
因此,在修改它时,我可以使用<T extends Comparable<T>>
,但我如何才能使返回类型相同?
答案 0 :(得分:7)
你基本上想要这样的东西:
public static <T extends Comparable<T>> T max(T a, T b) {
int n = a.compareTo(b);
if (n > 0)
return a;
if (n < 0)
return b;
return a;
}
您当然可以将此简化为以下内容(感谢@pickypg的通知):
public static <T extends Comparable<T>> T max(T a, T b) {
return a.compareTo(b) < 1 ? b : a;
}