0

我正在尝试用 Java 编写一个简单的代码分析器/元数据提取器。一开始,我要做的就是提取和区分实例和本地变量、方法及其签名,并将本地变量与它们所属的方法相关联,这与 Eclipse 在其大纲视图中显示它们的方式大致相同。当然,这可以通过简单的文本解析来完成,但这显然是一种极其繁琐且繁琐的方法,绝对是在重新发明轮子。由于编译器已经解析了源代码,我想利用它的功能以一种干净、简单、优雅的方式提取元数据。

知道使用哪个 API 来完成此任务吗?任何人都可以指向我可以用来执行此操作的 Eclipse 中的 API(因为我确信它存在)?

谢谢

4

3 回答 3

1

试试看: http: //www.steike.com/code/java-reverse-engineering/

您可以使用反射,这有点棘手

User user = new User();
Field[] fields = user.getClass().getDeclaredFields();
于 2013-01-30T23:48:43.020 回答
1

如果您使用的是 javac,您应该能够通过 Compiler API、Compiler Tree API 和 Language Model API 的组合来完成所有您想做的事情。请参阅http://docs.oracle.com/javase/7/docs/technotes/guides/javac/

使用编译器 API 调用 javac。使用 Compiler Tree API 检查 AST 使用 Language Model API 查看树的语义。

于 2013-04-10T03:04:53.513 回答
1

Eclipse ASTParser似乎是一个不错的起点。

于 2013-01-31T02:22:11.723 回答