我想在java应用程序中模拟用户行为,我想将方法调用和参数写入我将读取的日志文件并与之进行相同的调用。
我想使用反射(java.lang.reflect.Proxy)将文件写入日志,然后读取日志并进行调用。
是否有工具或方法?1.在日志文件中写出对这样的方法的调用,例如: com.example.Order.doStuff(String a,int b)
2.在日志文件中写出返回类型的内容,如果它存在,则为: com.example.ReturnType [private fildname = contents]
3.阅读此信息并使用反射进行上述调用?
感谢。
答案 0 :(得分:1)
查找AOP(Aspect Oriented Programming) 这将允许您在方法周围声明拦截器,然后您可以简单地使用拦截器写入日志文件。
以下是通过反思执行代码的示例。
import java.lang.reflect.Method;
public class RunMthdRef {
public int add(int a, int b) {
return a+b;
}
public int sub(int a, int b) {
return a-b;
}
public int mul(int a, int b) {
return a*b;
}
public int div(int a, int b) {
return a/b;
}
public static void main(String[] args) {
try {
Integer[] input={new Integer(2),new Integer(6)};
Class cl=Class.forName("RunMthdRef");
Class[] par=new Class[2];
par[0]=Integer.TYPE;
par[1]=Integer.TYPE;
Method mthd=cl.getMethod("add",par);
Integer output=(Integer)mthd.invoke(new RunMthdRef(),input);
System.out.println(output.intValue());
} catch (Exception e) {
e.printStackTrace();
}
}
}