动态java怎么执行方法体
时间: 2024-05-02 13:17:51 浏览: 7
在 Java 中,可以使用反射来动态执行方法体。首先,需要使用 `Class.forName()` 方法加载类,然后使用 `getMethod()` 或 `getDeclaredMethod()` 方法获取该类中的方法。接着,使用 `Method.invoke()` 方法执行该方法。
例如,假设我们有一个类 `MyClass`,它有一个名为 `myMethod()` 的方法,代码如下:
```
class MyClass {
public void myMethod() {
System.out.println("Hello, World!");
}
}
```
我们可以使用以下代码来动态执行 `myMethod()` 方法:
```
Class<?> cls = Class.forName("MyClass");
Method method = cls.getMethod("myMethod");
method.invoke(cls.newInstance());
```
请注意,如果方法是私有方法,则应使用 `getDeclaredMethod()` 方法而不是 `getMethod()` 方法。此外,如果方法带有参数,则应将参数数组作为第二个参数传递给 `getMethod()` 或 `getDeclaredMethod()` 方法。例如,如果 `myMethod()` 方法带有一个整型参数,则可以使用以下代码来获取该方法:
```
Method method = cls.getMethod("myMethod", int.class);
```
然后,在调用 `invoke()` 方法时,应将参数数组作为第二个参数传递。例如:
```
method.invoke(cls.newInstance(), 42);
```
希望这对您有帮助!