Java 如何使用泛型找到最大数量?
我需要实现一个方法,在使用泛型提供三个数字时计算最大数字。我知道如何使用可比较的类来实现这一点,但我只需要使用数字 这是代码Java 如何使用泛型找到最大数量?,java,generics,Java,Generics,我需要实现一个方法,在使用泛型提供三个数字时计算最大数字。我知道如何使用可比较的类来实现这一点,但我只需要使用数字 这是代码 public static <T extends Math> T compareThreeValue(T x, T y, T z){ T max=Math.max(Math.max(x, y), z); return max; } publicstatictcomparethreevalue(tx,tyt,tz){ T max=
public static <T extends Math> T compareThreeValue(T x, T y, T z){
T max=Math.max(Math.max(x, y), z);
return max;
}
publicstatictcomparethreevalue(tx,tyt,tz){
T max=Math.max(Math.max(x,y,z);
返回最大值;
}
我添加这段代码是为了了解我在尝试什么。因为所有用于数字的基本包装器都扩展了数字,它们实现了您可以做的比较
public static <T extends Number & Comparable<T>> T max(T x, T y, T z) {
return max(max(x, y), z);
}
public static <T extends Number & Comparable<T>> T max(T x, T y) {
if (x.compareTo(y) > 0) {
return x;
}
return y;
}
因为所有的数字都是可比的。但创建新列表的性能开销将为。因为所有用于数字的基本包装器都扩展了数字,它们实现了您可以做的比较
public static <T extends Number & Comparable<T>> T max(T x, T y, T z) {
return max(max(x, y), z);
}
public static <T extends Number & Comparable<T>> T max(T x, T y) {
if (x.compareTo(y) > 0) {
return x;
}
return y;
}
因为所有的数字都是可比的。但是,创建新列表时,您的性能开销将为。您的绑定类型没有意义,您将永远无法创建
Math
的实例。合适的绑定类型是什么?Number类没有max方法。您的绑定类型没有意义,您将永远无法创建Math
的实例。合适的绑定类型是什么?Number类没有max方法。对于泛型max(T,T)类型,方法max未定义,我遇到此错误。对于泛型max(T,T)类型,方法max未定义,我遇到此错误。