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 回答