public class Test{ public static void Temp(String ClassName,String MethodName,String args){ .................................................}public static void main(String args[]){ Temp("Hello","Demo","nihao");}}class Hello{ public void Demo(String args) { System.out.println("Hello"+args); }}写一个方法:public void Temp(String ClassName,String MethodName,String args),使得这个方法能够实现调用,其中ClassName为类名,MethodName为方法名,args参数。例如:Temp("Hello","Demo","nihao");
Proxy.newProxyInstance(Test.class.getClassLoader(), new Class[]{接口名.class}, "实现InvocationHandler的类")在 实现InvocationHandler的类 类里就有个 invoke(String ClassName,String MethodName,String args)
MethodName.invoke(delegate, args); 就调用了你说的那个了。
import java.lang.reflect.Method;public class Test1 { public static void Temp(String ClassName, String MethodName, String args) throws Exception {
Class c = Class.forName(ClassName);
Method method = c.getDeclaredMethod(MethodName, String.class);
Object obj = c.newInstance();
method.invoke(obj, args);
} public static void main(String args[]) throws Exception { Temp("Hello", "Demo", "nihao"); }
}class Hello { public void Demo(String args) { System.out.println("Hello" + args); }}