我需要弄清楚如何在程序运行时查看 java 方法的值。我无法更改正在运行的代码,并且我不想阻止代码的运行(因此在 eclipse 中使用调试模式是不可能的)。我只想告诉探查器或类似的东西,打印每次调用特定方法时收到的所有参数。
有没有办法做到这一点?
感谢 :)
在你的情况下,你应该使用AOP。用自定义代码包装您的方法并记录其所有调用。在一个项目中,我们使用 AspectJ 记录方法执行时间以进行分析。
也许你可以使用像Decorator这样的东西。假设您有一个带有您想要分析的方法的类,如下所示:
public class Example {
public void doSomething(parameters) {
doSomething;
}
}
您可以扩展此类并添加用于分析方法的行为。所以你可以这样做:
public class FilePrinterExample extends Example{
@Override
public void doSomething(parameters) {
for each parameters do
//print on file or what you want
super.doSomething(parameters);
}
}
我使用了一些伪代码,希望我很清楚。