Java 在程序运行时获取方法参数的值
我需要弄清楚如何在程序运行时查看java方法的值。 我不能更改正在运行的代码,也不想阻止代码的运行(因此在eclipse中使用调试模式是不可能的)。 我只想告诉分析器或类似的东西,打印特定方法每次调用时接收的所有参数 有没有办法做到这一点Java 在程序运行时获取方法参数的值,java,profiling,Java,Profiling,我需要弄清楚如何在程序运行时查看java方法的值。 我不能更改正在运行的代码,也不想阻止代码的运行(因此在eclipse中使用调试模式是不可能的)。 我只想告诉分析器或类似的东西,打印特定方法每次调用时接收的所有参数 有没有办法做到这一点 谢谢:)也许你可以用一个类似的。 假设您有一个类,其中包含要分析的方法,如下所示: public class Example { public void doSomething(parameters) { doSomet
谢谢:)也许你可以用一个类似的。 假设您有一个类,其中包含要分析的方法,如下所示:
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);
}
}
我使用了一些伪代码,希望我说得很清楚。如果您需要,您应该使用。用自定义代码包装您的方法,并记录其所有调用。在一个项目中,我们使用AspectJ记录方法执行时间以进行分析。可以做到这一点。为所需的方法创建方法触发器,并向其添加“打印方法调用操作”: 如果您需要更大的灵活性,将演示如何使用“运行侦听器脚本”从正在运行的应用程序中提取内部状态
免责声明:我的公司开发了JProfiler。您是在谈论要返回的数据类型、参数名称还是两者?这些参数的值。如果我是正确的,这将要求我重新编译代码,我不能这样做。不,不会。如果不能向类添加注释,则可以使用xml配置。更好地探索AOP。谢谢,我会看一看。它有试用期还是演示版?是的,它有10天的试用期,功能齐全,你可以从网站上下载。