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

Java 泛型方法如何调用另一个泛型方法,java,Java,我有两种泛型方法,如: <T extends MyClass> T methodA(Class<T> clazz){ ... methodB(clazz);//it is wrong } <T extends MyClass> T methodB(Class<T> clazz){ ... } 我想在methodA中调用methodB,但它不起作用。有什么我遗漏的吗?我想你遗漏了返回声明。您声明该方法返回一个类型为T的对象,扩展类MyClass。

我有两种泛型方法,如:

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

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

我想在methodA中调用methodB,但它不起作用。有什么我遗漏的吗?

我想你遗漏了返回声明。您声明该方法返回一个类型为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
}

你能提供实际的代码吗?和错误信息。是的,我发现它是由不同的返回语句引起的,但是show param type错误@西门吹雪 我没有遇到过这样的问题。你能粘贴实际的代码吗?像这样:T methodAClass clazz{…return methodBclazz;//它是错误的,显示paramclazz类型错误}T methodBClass clazz{…}@西门吹雪 这里的问题是ClassA和ClassB之间没有关系。如果您修改代码,比如ClassA扩展ClassB,那么错误就会消失。但是,我不确定这会如何影响你的逻辑。