【问题标题】:Java variable names out of strings字符串中的 Java 变量名
【发布时间】:2014-01-15 22:24:07
【问题描述】:

在没有提供任何源代码的情况下,我试图替换 .jar 中的某些类。一个类是从现有的一个类(没有 java 文件)实现的,所以我拥有所有方法和方法签名,但无法对参数产生任何意义,因为它们都被命名为 arg0、arg1...,因为有很多方法,其中一些包含多达 43 个参数,试图循环遍历参数以查看传入的内容。有什么方法可以使用 String 并动态获取该变量?

编辑: - -更多信息 - - 一切都在 jar 文件中编译,我可以在没有一个要更改的类的情况下重新打包。因此,我要更改的类扩展了另一个已编译的类。因此,当扩展已编译的类时,我的 IDE 会自动生成所有方法及其签名,其中参数是按顺序命名的,我想在每个函数中放置一个 for 循环来查看即将到来的内容,而不是逐个进行一个并将其打印到控制台。我想我在最初的问题中有点含糊。

谢谢

【问题讨论】:

  • 不,只有在调试模式下编译类/jar时,参数名称才会出现。您是要获取原始参数名称还是只是迭代并打印每个变量的值?
  • 我能够用我自己的类实现它,我的 IDE 在我的类中添加了所有方法。
  • 所以你使用的是反编译代码?
  • 找出谁编写了一个有 43 个参数的方法,并让他遭受一些无法形容的折磨,直到他确切地告诉你它们的用途!
  • cmon,重新/反编译一个c++程序,你就知道什么是痛苦了

标签: java


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-03-07
      • 2016-07-11
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多