我可以遍历到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);