是否可以获取对象方法的引用?例如,我想要一个调用其他方法作为回调的方法。像这样的东西:
public class Whatever
{
public void myMethod(Method m,Object args[])
{
}
}
这可能吗?
编辑:我的意思是一个对象的方法。我认为这是不可能的?
最佳答案
是的,这是可能的。
您只需获取方法并调用它。
下面是一些示例代码:
$cat InvokeMethod.java
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
public class InvokeMethod {
public static void invokeMethod( Method m , Object o , Object ... args )
throws IllegalAccessException,
InvocationTargetException {
m.invoke( o, args );
}
public static void main( String [] args )
throws NoSuchMethodException,
IllegalAccessException,
InvocationTargetException {
SomeObject object = new SomeObject();
Method method = object.getClass().getDeclaredMethod( "someMethod", String.class );
invokeMethod( method, object, "World");
}
}
class SomeObject {
public void someMethod( String name ){
System.out.println( " Hello " + name );
}
}
$javac InvokeMethod.java
$java InvokeMethod
Hello World
$
现在的问题是,你想做什么?也许是更好的方法。但至于你的问题,答案是肯定的。
关于java - 是否可以获取对 Java 方法的引用以便稍后调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2016324/