假设我有一个ASTRewrite实例,我无法做出假设(即通过可覆盖的方法返回)。我想测试重写是否实际存储了对编译单元的任何修改,否则它只是" identity"更改。怎么可能这样做?
我查了ASTRewrite的方法但是找不到任何有用的方法。所以我想正确的做法并不简单。
答案 0 :(得分: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
}
可以从以下链接找到更多帮助: