예, 가능합니다.
방금 메소드를 가져 와서 호출하십시오.
이
$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
$
이제 질문은, 당신이해야 할 노력하고있다 :
여기에 몇 가지 예제 코드는? 아마도 더 나은 방법 일 것입니다. 그러나 귀하의 질문에 대한 답변은 예입니다.
"개체의 메서드"가 아니라 "클래스의 메서드"를 의미합니까? – skaffman
@skaffman : 객체의 클래스 메쏘드. 어떻게에 대한? 이는 중요한 구분입니다. 익명의 클래스 인스턴스가있는 경우 인스턴스에서 클래스에 대해 'getClass'를 호출해야만 클래스를 참조 할 수 있습니다. 리플렉션을 사용하면 일반적으로 기본 인터페이스 인/class/enum을 통해 액세스 할 수없는 다른 방법에 액세스 할 수 있습니다. :-P –