1
假设我有一个ASTRewrite的实例,我不能做出假设(即通过可重写的方法返回)。我想测试重写是否实际存储对编译单元的任何修改,否则它仅仅是“身份”更改。这怎么可能呢?如何找出在ASTRewrite中是否有任何更改记录
我去了ASTRewrite的方法,但无法找到任何有用的东西。所以我想正确的做法并不简单。
假设我有一个ASTRewrite的实例,我不能做出假设(即通过可重写的方法返回)。我想测试重写是否实际存储对编译单元的任何修改,否则它仅仅是“身份”更改。这怎么可能呢?如何找出在ASTRewrite中是否有任何更改记录
我去了ASTRewrite的方法,但无法找到任何有用的东西。所以我想正确的做法并不简单。
您可以使用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
}
更多帮助,可以从下面的链接中找到:
谢谢您的回答。我已经想到了这一点,但无法想出一个方法来检查TextEdit是否为空。 – Artium
用您的查询更新了答案。 –