抽象语法树——使用eclipse JDT/AST添加一个新方法



我可以遍历到TypeDeclaration,我只是想在它上面添加一个简单的方法。我怎么做呢?我已经尝试了下面的代码片段,但没有工作。

AST ast = compilationUnit.getAST();
for (final TypeDeclaration typeDeclaration : allTypes) {
        MethodDeclaration methodNode = typeDeclaration.getAST()
                .newMethodDeclaration();
        // methodNode.parameters();
        methodNode.setName(ast.newSimpleName("test"));
        Block block = ast.newBlock();
        ListRewrite listRewrite = rewriter.getListRewrite(block,
                Block.STATEMENTS_PROPERTY);
        Statement statement = (Statement) rewriter
                .createStringPlaceholder("//New Edited n ",
                        ASTNode.EMPTY_STATEMENT);
        listRewrite.insertLast(statement, null);
        methodNode.setBody(block);
}

您可以通过以下代码获得第一个类型声明的列表重写器来实现:

    ListRewrite lrw = astRewriter.getListRewrite(((TypeDeclaration)compilationUnit.types().get(0)), TypeDeclaration.BODY_DECLARATIONS_PROPERTY);
    lrw.insertLast(methodDeclaration, null);

最新更新