Javaparser:用一种方法访问所有节点类型

标签 java parsing javaparser

我正在使用 Javaparser解析 Java 源代码。

有没有办法实现一个可以访问抽象Node类的Visitor?

我想访问每个节点并打印它的行号,但我不想为每个节点类型(AssignExpr、BinaryExpr、IfStmt 等)实现一个 visit() 方法,因为类型太多了.

最佳答案

访问者只对处理不同类型的元素有意义。您可以改为从根(CompilationUnit)开始并将其传递给您的方法进程:

void process(Node节点){ //对节点做一些事情 对于(节点子节点:node.getChildrenNodes()){ 过程( child ); } }

免责声明:我是 JavaParser 贡献者

关于Javaparser:用一种方法访问所有节点类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31078754/

相关文章:

c# - 在 C#/.Net 中解析 Lua 数据结构的最简单方法

javascript - 多行正则表达式不太匹配所有内容

java - 如何分别获取名词、动词、形容词同义词集?

Java:如何使用JavaParser获取Java类的标识符数量

java - 复制 AST 中的节点

java - 当我在一个类中有多个测试时,避免 Java Selenium TestNG 超时的最佳方法是什么?

java - 如何用函数处理catch block ?

java - 递归计算 base 的 n 次方的值

java - 所选目录不是 JDK 的有效主目录 - Windows 上的 Intellij IDEA2016

java - 使用 JavaParser 获取 main 方法中调用的方法