#java #javaparser #compilationunit
Вопрос:
Работа с JavaParser для добавления определенной функции в класс. Для этого мне нужно перебрать все дочерние узлы.
for (Node childNode : cu.getChildNodes()) {
if (childNode instanceof ClassOrInterfaceDeclaration) {
ClassOrInterfaceDeclaration classOrInterfaceDeclaration = (ClassOrInterfaceDeclaration) childNode;
MethodDeclaration method = classOrInterfaceDeclaration.addMethod("testingGetterAndSetter", Modifier.PUBLIC);
method.addMarkerAnnotation("Test");
NodeList<Statement> statements = new NodeList<>();
BlockStmt blockStmt = JavaParser.parseBlock(String.format(TestMethod, className));
method.setBody(blockStmt);
}
}
Но с затмением я получаю ошибку. Что getChildNodes() не поддерживается для cu, где cu является единицей компиляции. Я проверил с помощью japa.parser.ast.CompilationUnit, но там нет getChildNodes(). Но проверьте этот фрагмент кода на этой странице, где они используют cu.getChildNodes().
Когда мы сможем это использовать? Что нужно изменить?