Java 如何跟踪方法中的参数?
基本上我需要跟踪方法对参数的作用,我不能修改要跟踪的函数 最终,我要做的是直观地表示该方法对参数所做的操作 我知道java是按值传递的,所以在不修改方法本身的情况下,我很难找到解决方法 例如:Java 如何跟踪方法中的参数?,java,Java,基本上我需要跟踪方法对参数的作用,我不能修改要跟踪的函数 最终,我要做的是直观地表示该方法对参数所做的操作 我知道java是按值传递的,所以在不修改方法本身的情况下,我很难找到解决方法 例如: public void foo(int x){ x+=10; } 如果我这样称呼它: foo(2); 我需要能够画2个矩形,一个有2个宽度,一个有12个 我真的很感谢你的帮助,提前谢谢你 Java按值传递参数,因此方法中的指令 x += 10; 对传入的内容没有任何影响 int i = 2;
public void foo(int x){
x+=10;
}
如果我这样称呼它:
foo(2);
我需要能够画2个矩形,一个有2个宽度,一个有12个
我真的很感谢你的帮助,提前谢谢你 Java按值传递参数,因此方法中的指令
x += 10;
对传入的内容没有任何影响
int i = 2;
foo(i);
System.out.println(i); // 2
您必须执行静态代码分析来显示方法内部发生的情况,注意传入的变量实际上没有发生任何变化。因此,从表面上看,您需要某种堆栈或列表来维护更改的历史记录,不幸的是,没有“魔力”您可以在不修改方法或调用它的人的情况下执行此操作。该方法不会执行任何操作。它只更改外部完全无法访问的局部变量。如果编译器将其作为一个optimization.shot完全删除,我也不会感到惊讶。我试着用一个我不记得名字的图书馆。它让我创建了一个叫做增强器的东西,它让我截获了一个方法,我尝试在继续使用该方法之前向参数添加一个侦听器,但不幸的是,在调用该方法之后,参数切换回其原始值。谢谢你的帮助!伊瓦尔,是的,这个方法只是一个简单的例子。如果它是一个for循环,它打印出一些对参数所做的数学方程,它会有什么不同吗?@AhmedMaarek我不是该领域的专家,所以我不能给你一个明确的答案。这并非完全不可能。调试器用于单步执行代码,因此您可以使用调试器执行的相同路径,尽管这可能不是一个简单的练习。(虽然我自己从未尝试过,但谁知道呢)明白了,你能告诉我从哪里开始阅读静态代码分析吗