我有两种泛型方法,如:
<T extends MyClass> T methodA(Class<T> clazz){
...
methodB(clazz);//it is wrong
}
<T extends MyClass> T methodB(Class<T> clazz){
...
}
我希望在methodB
中调用methodA
,但它不起作用。我错过了什么吗?
答案 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
}