将方法声明从一个CompilationUnit AST复制到Eclipse JDT中另一个编译单元的AST

时间:2012-07-05 17:12:47

标签: eclipse eclipse-jdt

我正在尝试将方法声明从第一个AST(方法声明最初所在的位置)复制到另一个AST。我试图做的是使用原始编译单元的ASTRewrite复制方法声明,然后我将其添加到下面代码中第二个编译单元的ListRewrite。

MethodDeclaration newMethodDeclaration = (MethodDeclaration) oldCURewrite.createCopyTarget(oldMethodDeclaration);

astRewrite.getListRewrite(typeDeclaration, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertAfter(newMethodDeclaration, constructor, null);

然而,这给了我一个MISSING方法声明而不是正确的声明。在程序中没有抛出异常。 是否有任何标准方法来执行复制,或者我必须从start开始创建方法声明的所有子节点? (如果可能的话,这将太难了)

感谢

1 个答案:

答案 0 :(得分:3)

我设法使用ASTNode类的copySubtree(AST目标,ASTNode节点)静态方法复制方法。第一个参数是针对目标的。