解析.java文件并分析其AST

解析.java文件并分析其AST,java,parsing,abstract-syntax-tree,Java,Parsing,Abstract Syntax Tree,我正在寻找一个解析器,它可以解析.java文件并创建一些对象,这些对象应该包含关于这个文件的方法、属性的信息。类、接口、方法参数和注释 你知道吗 我找到了,但我不确定它是否能处理注释,这对我来说很重要 有什么建议吗 谢谢您可以使用Java语法()并使用解析器生成器(例如YACC)或Scala解析器组合器来生成AST。此语法中包含注释。为什么不使用标准?我知道在最新一期Java杂志中讨论过它——对于一些源代码示例,。我正在使用它来解析Java代码,是的,它可以处理注释,例如,获取方法的注释: Li

我正在寻找一个解析器,它可以解析.java文件并创建一些对象,这些对象应该包含关于这个文件的方法、属性的信息。类、接口、方法参数和注释

你知道吗

我找到了,但我不确定它是否能处理注释,这对我来说很重要

有什么建议吗


谢谢

您可以使用Java语法()并使用解析器生成器(例如YACC)或Scala解析器组合器来生成AST。此语法中包含注释。

为什么不使用标准?我知道在最新一期Java杂志中讨论过它——对于一些源代码示例,。

我正在使用它来解析Java代码,是的,它可以处理注释,例如,获取方法的注释:

List<AnnotationExpr> annotations = method.getAnnotations();
List annotations=method.getAnnotations();
将注释(按名称)添加到方法:


添加(新的NormalAnnotationExpr(ashelper.createNameExpr(“覆盖”),null))

hmmm为什么不使用反射来检索此信息?如果您不确定它是否能够处理注释,最好在发布之前进行更多的研究……有许多可用于Java代码的解析器,每个解析器都有自己的预期用途和优缺点。根据原始帖子中的大量细节,1)无法确定什么适合您的案例,2)这些解析器的使用非常简单,没有迹象表明您已经对这个空间进行了足够的研究,能够实际使用建议的空间。这个+Java注释处理器应该足以满足所有代码生成需求。