1

最初のAST(メソッド宣言が元々存在する場所)から別のASTにメソッド宣言をコピーしようとしています。私がやろうとしたのは、元のコンパイルユニットのASTRewriteを使用してメソッド宣言をコピーし、それを次のコードの2番目のコンパイルユニットのListRewriteに追加することでした。

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

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

しかし、これは私にMISSINGメソッド宣言を与え、正しいものではありません。手順中に例外はスローされません。コピーを行う標準的な方法はありますか、それともメソッド宣言のすべての子ノードを最初から作成する必要がありますか?(可能であれば、これは難しすぎるでしょう)

ありがとう

4

1 に答える 1

3

ASTNodeクラスのcopySubtree(ASTターゲット、ASTNodeノード)静的メソッドを使用してメソッドをコピーすることができました。最初のパラメーターは、ターゲットast用です。

于 2014-02-06T08:28:52.973 に答える