1

想定できない (つまり、オーバーライド可能なメソッドによって返される) ASTRewrite のインスタンスがあるとします。書き換えが実際にコンパイル単位への変更を保存するかどうか、または単に「アイデンティティ」の変更であるかどうかをテストしたいと思います。これはどのように行うことができますか?

ASTRewriteのメソッドを調べましたが、役立つものを見つけることができませんでした。したがって、それを行う正しい方法は簡単ではないと思います。

4

1 に答える 1

1

TextEditを使用して、AST に適用された編集を確認できます。

 TextEdit edits = rewrite.rewriteAST(document, compUnit.getJavaProject().getOptions(true));

AST で変更が行われない場合、編集は空になります。それ以外の場合は、オフセットを使用して AST への追加と削除が含まれます。

getLength()メソッドを使用して TextEdit が空かどうかを確認できます。

// If edits available, write them to the file.
if (edits.getLength() != 0) {
     // do something
}

詳細なヘルプは、以下のリンクから見つけることができます:

http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Fguide%2Fjdt_api_manip.htm

于 2012-12-18T05:24:14.450 に答える