【问题标题】:Finding usage of methods in java [closed]在java中查找方法的用法[关闭]
【发布时间】:2014-07-16 11:25:57
【问题描述】:

我必须找到java中方法的用法。

要求是编写可以查看代码并找出使用的方法和位置的元代码。 在eclipse中我们可以找到它:Find methods calls in Eclipse project

我已经尝试手动解析代码和java解析器api:http://code.google.com/p/javaparser/

我发现这两种方法都很困难,并且需要处理很多场景。

有哪些 API 可以使用,或者我必须手动解析代码才能找到用途?

【问题讨论】:

  • 我不知道为什么它被否决了,问题是完全有效的(只是我没有添加我尝试了 X 和 Y),无论如何添加我尝试了 X 和 Y :)
  • 我认为反对票是因为问题似乎是题外话(“任何可以使用的 API 或者我必须手动解析代码才能找到用法?" 在我看来就像是要求我们推荐一个库,这在 StackOverflow 上是题外话。

标签: java


【解决方案1】:

这里是开源 java 代码分析器的列表:http://java-source.net/open-source/code-analyzers

查看它们的源代码,例如PMD

【讨论】:

    【解决方案2】:

    如果您可以在分析代码之前对其进行编译,那么您可以检查字节码以查找方法调用。

    例如,您可以使用ObjectWeb ASM 库。使用这个库,您需要编写读取类文件的代码。然后,您可以检查类文件中的每个方法,以找到 INVOKESTATIC、INVOKEVIRTUAL、INVOKEINTERFACE 和 INVOKESPECIAL 字节码指令。这些是用于调用方法的字节码指令。每条指令都有被调用方法的名称、声明类/接口的名称以及与指令关联的描述符。

    这听起来可能相当复杂,但事实并非如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      相关资源
      最近更新 更多