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



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

MethodDeclaration newMethodDeclaration = (MethodDeclaration) oldCURewrite.createCopyTarget(oldMethodDeclaration);
astRewrite.getListRewrite(typeDeclaration, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertAfter(newMethodDeclaration, constructor, null);

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

谢谢

我设法使用ASTNode

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

最新更新