首页 > 解决方案 > 在“普通”类中声明通用方法及其返回

问题描述

我需要一个包含具有两个泛型参数的方法的非泛型类。在这种方法中,我的目标是比较两个通用参数并返回更大的值。我该怎么做?

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));
    }
}

标签: javagenericscomparablecompareto

解决方案


只需将其移至方法声明

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));

推荐阅读