如何使用泛型找到最大数量?

new*_*day 1 java generics

我需要实现一个方法,使用泛型提供三个数字时计算最大数量.我知道如何使用Comparable类来执行此操作,但我只需要使用数字.

这是代码.

 public static <T extends Math>  T compareThreeValue(T x, T y, T z){ 
     T max=Math.max(Math.max(x, y), z);
     return max; 
 }
Run Code Online (Sandbox Code Playgroud)

我添加了这段代码,以了解我在尝试什么.

小智 5

由于数字的所有原始包装器都扩展了数字并且它们实现了可比性

 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;
}
Run Code Online (Sandbox Code Playgroud)

你也可以使用

Collections.max(Arrays.asList(x,y,z))
Run Code Online (Sandbox Code Playgroud)

因为所有数字都是Comparable.但是,您将有创建新列表的性能开销.