【问题标题】:Java/groovy reflection read method contentJava/groovy反射读取方法内容
【发布时间】:2013-01-19 17:50:11
【问题描述】:

我想分析我的代码、类和方法:我的目标是通过反转我的代码来创建序列图 但是,我想在不运行应用程序的情况下对其进行分析

所以,我已经得到了我的类和方法名 我现在正在寻找的是读取/获取方法的内容,而不使用正则表达式来解析我的整个文件 有没有简单的方法来获得它? 谢谢

【问题讨论】:

  • 使用JarInputStream(如果内容是JAR)获取各个类的字节,然后使用字节码工程库(如ASM)来分析字节码。
  • 为什么不从您的源代码创建图表?
  • @Vulcan :谢谢,我还没有制作任何 JAR,但为了第二次分析它是一个想法

标签: java reflection methods groovy reverse


【解决方案1】:

我认为您可以使用 Groovy 的Global AST Transforms 来分析您的代码。它将使您可以访问抽象语法树。从那里您可以进入代码的树节点。这是 Groovy 编译过程中的“挂钩”。

我不确定它是否适用于 Java 代码。 Java 是 Groovy 代码,所以理论上它可以工作,但编译器不会通过 .java 文件。

【讨论】:

  • 嗨,这似乎是一个很好的方向,谢谢,但我真的不喜欢必须在“无处不在”添加注释的事实。也许我还需要学习更多关于 AST 的知识,但这并不简单:/
  • 不,全局 ass 不需要到处注释!另外,我刚刚注意到,但是“从 Groovy 1.7.5 开始,您可以将自己的文件类型添加到 groovy 编译器”
猜你喜欢
  • 1970-01-01
  • 2011-04-16
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多