【问题标题】:Copy a method declaration from one CompilationUnit AST to the AST of another Compilation Unit in Eclipse JDT将方法声明从一个 CompilationUnit AST 复制到 Eclipse JDT 中另一个编译单元的 AST
【发布时间】:2012-07-05 17:12:46
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: eclipse eclipse-jdt


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多