在 "normal" class 及其 return 中声明泛型方法

Declare Generic method in a "normal" class and its return

我需要一个非泛型 class 包含一个带有两个泛型参数的方法。在这种方法中,我的目标是比较两个通用参数和 return 中较大的值。我该怎么做?

public class generic <T extends Comparable<T>>{

    public T Max( T pv, T sv){
        if(pv.compareTo(sv)>=0){
            return pv;
        }else {
            return sv;
        }
    }

    public static void main(String[]args){
        generic g = new generic();
        System.out.println(g.Max( 2, 7));
    }
}

移到方法声明处即可

public class Generic {

    public <T extends Comparable<T>> T max( T pv, T sv){
        if (pv.compareTo(sv) >= 0) {
            return pv;
        } else {
            return sv;
        }
    }

    public static void main(String[]args){
        Generic g = new Generic();
        System.out.println(g.max(2, 7));
    }
}

该方法也可以是静态的,因为它不依赖于任何状态。调用起来更方便

System.out.println(max(2, 7));