在EclipseJDT中将方法声明从一个编译单元AST复制到另一个编译单元的AST

在EclipseJDT中将方法声明从一个编译单元AST复制到另一个编译单元的AST,eclipse,eclipse-jdt,Eclipse,Eclipse Jdt,我试图将方法声明从第一个AST(方法声明最初驻留的位置)复制到另一个AST。我试图做的是使用原始编译单元的ASTRewrite复制方法声明,然后在下面的代码中将其添加到第二个编译单元的ListRewrite中 MethodDeclaration newMethodDeclaration = (MethodDeclaration) oldCURewrite.createCopyTarget(oldMethodDeclaration); astRewrite.getListRewrite(type

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

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

astRewrite.getListRewrite(typeDeclaration, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertAfter(newMethodDeclaration, constructor, null);
但是,这给了我一个缺少的方法声明,而不是正确的方法声明。在此过程中未引发任何异常。 是否有任何标准的复制方法,或者我必须从一开始就创建方法声明的所有子节点?(如果可能的话,这太难了)


谢谢

我使用ASTNode类的copySubtree(AST目标,ASTNode节点)静态方法复制了该方法。第一个参数用于目标ast