java如何根据方法名获取方法

30次阅读
没有评论

共计 942 个字符,预计需要花费 3 分钟才能阅读完成。

在 Java 中,可以通过反射来根据方法名获取方法。具体步骤如下:

  1. 使用 Class.forName() 方法加载对应的类,获取类的 Class 对象。例如,要获取 com.example.MyClass 类的方法,可以使用 Class.forName("com.example.MyClass") 来获取该类的 Class 对象。

  2. 使用 Class 对象的 getMethods() 方法获取该类的所有公共方法,或者使用 getDeclaredMethods() 方法获取该类的所有方法(包括私有方法)。

  3. 遍历方法数组,使用 getName() 方法获取每个方法的方法名,与目标方法名进行比较。

  4. 找到目标方法后,可以使用 Method 对象的其他方法执行该方法。

以下是一个示例代码:

import java.lang.reflect.Method;

public class Main {public static void main(String[] args) throws NoSuchMethodException {try {// 加载类,获取 Class 对象
            Class<?> clazz = Class.forName("com.example.MyClass");

            // 获取所有公共方法
            Method[] methods = clazz.getMethods();

            // 遍历方法数组
            for (Method method : methods) {// 获取方法名
                String methodName = method.getName();

                // 判断方法名是否与目标方法名相同
                if (methodName.equals("myMethod")) {// 执行目标方法
                    method.invoke(null); // 如果方法是静态方法,则传入 null 作为对象,非静态方法则传入实例对象
                    break;
                }
            }
        } catch (ClassNotFoundException e) {e.printStackTrace();
        }
    }
}

class MyClass {public static void myMethod() {System.out.println("Hello, world!");
    }
}

在上面的示例中,我们通过反射获取了 MyClass 类的方法,并找到了名为 myMethod 的方法,并执行了该方法。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-13发表,共计942字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)