我只想知道方法的返回类型,仅通过它的名称,我正在使用该代码,但它对我不起作用(它总是返回 null):
public Object getType(String key) throws Exception {
Object returnType = null;
String name = key;
Method[] methods = name.getClass().getMethods();
for(int i =0; i < methods.length ; i++){
if(key.equals(methods[i])){
returnType = methods[i].getReturnType();
}
}
return returnType;
}
最佳答案
而不是:
if(key.equals(methods[i])){
你应该有
if(key.equals(methods[i].getName())){
还可以在代码中进行一个小的改进,您不需要 returnType
局部变量,并且当您已经找到所需的方法时,也不需要迭代所有剩余的方法寻找,所以代码可能是:
public Object getType(String key) throws Exception {
String name = key;
Method[] methods = name.getClass().getMethods();
for(int i =0; i < methods.length ; i++){
if(key.equals(methods[i])){
return methods[i].getReturnType();
}
}
return null;
}
关于java - 我如何仅根据方法名称知道方法返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16834369/