Java:如何获取传递给调用此方法的方法的参数?
在java中,可以获取调用当前方法的类和方法(在其中获得StackTrace的方法)。
我的问题是,我可以获取传递给调用此方法的方法的参数吗?
我需要此来进行调试。
例如:
baseClass { initialFunc(input) {
var modifiedInput = input + " I modified you";
otherClass.doSomething(modifiedInput);
}
}
otherClass {
doSomething(input) {
//GET THE ARGUMENTS PASSED TO THE METHOD OF THE CLASS THAT CALLED THIS METHOD
}
}
可以从堆栈跟踪中获取此信息,还是有其他方法?
(请注意,我需要能够在运行时执行此操作,并且实际上不能更改baseClass的源,这将成为我的调试类的功能,该类事先不知道源)
谢谢。
回答:
我认为使用标准Java API不可能做到这一点。
您可以做的是使用AspectJ,在调用方法上放置一个切入点,保存参数,在被调用方法上放置一个切入点,然后传递参数。
另一个选择(稍微高级一点)是使用自定义的字节码重写类加载器,该加载器保存原始参数,并将其作为额外参数传递给下一个方法。实施可能需要一两天。合适的框架是BCEL或ASM。
以上是 Java:如何获取传递给调用此方法的方法的参数? 的全部内容, 来源链接: utcz.com/qa/412795.html