Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用泛型找到最大数量?_Java_Generics - Fatal编程技术网

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未定义,我遇到此错误。