java - 我如何仅根据方法名称知道方法返回类型?

标签 java reflection methods return return-type

我只想知道方法的返回类型,仅通过它的名称,我正在使用该代码,但它对我不起作用(它总是返回 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/

相关文章:

java - 如何在png图像中保持透明背景

java - 是否可以使用反射从 Java 类中检索所有成员,包括私有(private)成员?

java - 自定义类中的变量总是打印 0

java - 将该方法调用到矩阵中会产生 0 而不是正确的温度

java - 当我设置类实例时,我的 Android 应用程序崩溃了

java - 处理、制作模拟时钟、数字

java - 使用java获取XML的某些值

c# - 静态调用实例方法

java - 在Java中,有什么方法可以判断一个类是否是一个简单的 'Java'类?

python - 如何在我自己的类方法中使用 `with open`?