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,那么错误就会消失。但是,我不确定这会如何影响你的逻辑。