一个泛型方法如何调用另一个泛型方法

时间:2017-09-22 08:43:11

标签: java

我有两种泛型方法,如:

<T extends MyClass> T methodA(Class<T> clazz){
...
methodB(clazz);//it is wrong
}

<T extends MyClass> T methodB(Class<T> clazz){
...
}

我希望在methodB中调用methodA,但它不起作用。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我认为你错过了返回声明。您声明该方法返回一个类型为T的对象,扩展类MyClass。但是,你没有归还它。

以下代码块适用于我。

public class CodePlay {

    public static void main(String[] args) {
        CodePlay cp = new CodePlay();
        System.out.println(cp.methodA(null));
    }

    public <T extends MyClass> T methodA(Class<T> clazz){
        // do stuff
        return methodB(clazz);
    }

    public <T extends MyClass> T methodB(Class<T> clazz) {
        // do stuff
        return null;
        // return actual value
    }

}

class MyClass {
    // do stuff
}