在Java中,invoke
方法用于调用一个方法或构造函数。
invoke
方法有两种使用方式:
对于普通方法的调用:
Object invoke(Object obj, Object... args)
obj
是要调用方法的对象,如果方法是静态的,则传入null。args
是方法的参数列表。示例:
// 定义一个类
class MyClass {
public void myMethod(String str) {
System.out.println("Hello, " + str);
}
}
// 创建一个对象
MyClass obj = new MyClass();
// 调用myMethod方法
obj.getClass().getMethod("myMethod", String.class).invoke(obj, "World");
对于静态方法的调用:
Object invoke(Object obj, Object... args)
obj
是要调用方法的类对象,即类的Class
对象。args
是方法的参数列表。示例:
// 定义一个类
class MyClass {
public static void staticMethod(String str) {
System.out.println("Hello, " + str);
}
}
// 调用staticMethod方法
MyClass.class.getMethod("staticMethod", String.class).invoke(null, "World");
需要注意的是,invoke
方法返回的是被调用方法的返回值,如果被调用方法是void
类型,则返回null
。