java中method的invoke()方法
时间: 2023-09-01 21:11:23 浏览: 103
Java中的Method类提供了一个invoke()方法,用于动态地调用一个方法。该方法需要两个参数:
1. Object类型的参数,表示要调用该方法的对象实例,如果该方法是静态方法,则可以传入null。
2. Object类型的可变参数,表示该方法所需的参数。
例如,假设有一个Person类,其中有一个sayHello()方法:
```
public class Person {
public void sayHello(String name) {
System.out.println("Hello, " + name + "!");
}
}
```
可以使用反射机制调用该方法,示例代码如下:
```
public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
Class<Person> clazz = Person.class;
// 获取sayHello方法
Method sayHelloMethod = clazz.getMethod("sayHello", String.class);
// 创建Person对象
Person person = clazz.newInstance();
// 调用sayHello方法
sayHelloMethod.invoke(person, "John");
}
```
在上面的示例中,首先通过Person.class获取到sayHello方法,然后通过newInstance()方法创建了Person对象实例,最后使用invoke()方法调用sayHello方法,并传入一个字符串参数。调用结果为输出"Hello, John!"。
阅读全文