我正在尝试将方法声明从第一个AST (方法声明最初所在的位置)复制到另一个AST。我尝试做的是使用原始编译单元的ASTRewrite复制方法声明,然后将其添加到下面代码中的第二个编译单元的ListRewrite中。
MethodDeclaration newMethodDeclaration = (MethodDeclaration) oldCURewrite.createCopyTarget(oldMethodDeclaration);
astRewrite.getListRewrite(typeDeclaration, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertAfter(newMethodDeclaration, constructor, null);然而,这给了我一个丢失的方法声明,而不是正确的方法声明。在此过程中未引发任何异常。有没有什么标准的复制方法,或者我必须从头开始创建方法声明的所有子节点?(如果可能的话,这太难了)
谢谢
发布于 2014-02-06 16:28:53
我设法使用ASTNode类的copySubtree(AST目标,ASTNode节点)静态方法复制了该方法。第一个参数用于目标ast。
https://stackoverflow.com/questions/11349238
复制相似问题