Java如何Invoke方法
时间: 2024-04-10 13:27:11 浏览: 116
Java中可以通过反射机制来调用方法,具体步骤如下:
1. 获取目标类的Class对象。可以通过`Class.forName("类名")`来获取或者直接使用目标类的`.class`属性。
2. 获取要调用的方法。可以使用`getMethod("方法名", 参数类型...)`方法来获取指定方法,如果方法是私有的,则需要使用`getDeclaredMethod("方法名", 参数类型...)`方法。
3. 设置方法的可访问性。如果要调用的方法是私有的,需要使用`setAccessible(true)`来设置可访问性。
4. 调用方法。使用`invoke(对象, 参数...)`来调用目标方法,如果是静态方法,对象参数可以为null。
下面是一个简单的示例代码:
```java
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) throws Exception{
// 获取目标类的Class对象
Class<?> targetClass = TargetClass.class;
// 获取要调用的方法
Method method = targetClass.getMethod("methodName", int.class, String.class);
// 设置方法的可访问性
method.setAccessible(true);
// 创建目标类的实例
TargetClass target = new TargetClass();
// 调用方法
Object result = method.invoke(target, 123, "Hello");
System.out.println(result);
}
}
class TargetClass {
public void methodName(int number, String message) {
System.out.println("Number: " + number + ", Message: " + message);
}
}
```
以上代码演示了如何通过反射机制调用一个方法,输出结果为:Number: 123, Message: Hello。
阅读全文