在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
。