我正在使用 Javaparser解析 Java 源代码。
有没有办法实现一个可以访问抽象Node类的Visitor?
我想访问每个节点并打印它的行号,但我不想为每个节点类型(AssignExpr、BinaryExpr、IfStmt 等)实现一个 visit() 方法,因为类型太多了.
最佳答案
访问者只对处理不同类型的元素有意义。您可以改为从根(CompilationUnit)开始并将其传递给您的方法进程:
void process(Node节点){
//对节点做一些事情
对于(节点子节点:node.getChildrenNodes()){
过程( child );
}
}
免责声明:我是 JavaParser 贡献者
关于Javaparser:用一种方法访问所有节点类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31078754/