Javaparser: посещение всех типов узлов одним методом
Я использую Javaparser для разбора исходного кода Java.
Есть ли способ реализовать Visitor, который может посещать абстрактный класс Node?
Я хочу посетить каждый узел и напечатать его номер строки, но я не хочу реализовывать метод visit() для каждого типа узла (AssignExpr, BinaryExpr, IfStmt и т. Д.), Потому что таких типов очень много.
1 ответ
Решение
Посетитель имеет смысл только обрабатывать различные типы элементов. Вместо этого вы можете начать с корня (CompilationUnit) и передать его процессу вашего метода:
void process(Node node){
// Do something with the node
for (Node child : node.getChildrenNodes()){
process(child);
}
}
Отказ от ответственности: я участник JavaParser