2014-01-15 143 views
0

对于未记录的库有问题,我试图在没有提供任何源代码的情况下替换.jar中的某些类。一个类是从一个现有的类实现的(没有Java文件),所以我有所有的方法和方法签名,但没有办法使任何感觉出参数,因为它们都被命名为arg0,arg1 ...,因为有很多方法和一些包含多达43个参数试图通过参数循环来看看会发生什么。有什么方法可以使用String并动态获取该变量?字符串中的Java变量名称

编辑: ---更多信息--- 所有东西都在jar文件中编译,我可以在没有一个需要改变的类的情况下重新打包。所以,我想改变的类扩展了另一个被编译的类。所以,当扩展编译后的类时,我的IDE会自动生成所有的方法和它们的签名,而这些参数是按顺序命名的,我想在每个函数中放置一个for-loop来查看将要进入的内容,一个并将其打印到控制台。我想我原来的问题有点模糊。

谢谢

+4

不,只有在调试模式下编译类/ jar时参数名称才存在。你想获取原始参数名称还是只是迭代并打印每个变量的值? –

+0

我能够用我自己的类实现它,并且我的IDE在我的课程中添加了所有的方法。 – lrl

+0

所以你使用的是反编译的代码? –

回答

2

不,如果这些符号已经从编译class文件中删除,则无法恢复。

0

除非类在调试模式下编译,否则无法访问参数名称。但是,如果您只是想迭代并打印传入的每个参数的值,那么如果您嘲笑该方法,mockito可能能够帮助您。或者您可以只使用图形调试器。