是否有可能获得对象方法的引用?例如,我想要一个调用其他方法作为回调的方法.就像是:
public class Whatever
{
public void myMethod(Method m,Object args[])
{
}
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
编辑:我的意思是对象的方法.我认为这不可能吗?
对的,这是可能的.
你只需要获取方法并调用它.
这是一些示例代码:
$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
$
Run Code Online (Sandbox Code Playgroud)
现在问题是,你想做什么?也许是更好的方法.但至于你的问题,答案是肯定的.