Java 中的语句级反射



我正在寻找java中的一种机制(可能像Reflection一样)来访问程序中的语句。 例如,我访问一个函数的语句,然后抛出语句树以对Java程序进行分析。

在.Net中,Microsoft提供了Extended Reflection。 Java中的替代方案是什么?


对于 C 文件,CIL处理.c源文件,并允许我们访问语句并静态抛出树(甚至更改和插入代码)。 如果有一个工具可以处理.java代码并执行类似的工作,可以解决我的问题。

如果您打算通过Java应用程序分析Java代码,则需要源代码的副本。 .java文件本质上是文本文件,因此有了源代码,您的程序可以读取类似于读取任何文本文件的文件。

有几种工具,如PMD和Clover,将为您执行此分析。 使用已建立的工具可以节省时间和资源。 尽管 Clover 不再是一个免费工具,但它提供了有关代码复杂性的广泛指标。 我相信PMD可能会提供类似的指标。

最新更新