如何在Eclipse JDT的ListRewrite中获取节点的索引

时间:2017-08-12 13:00:12

标签: java abstract-syntax-tree eclipse-jdt

我正在使用Eclipse JDT来修改源代码的AST。我想修改MethodDeclaration节点。为此,我使用ASTVisitor访问了它并进行了更改。现在我删除了过去的节点,并尝试使用ListRewrite.insertAt()方法在同一位置添加新节点。为此我想在删除之前获取节点的索引。我怎样才能获得索引?

2 个答案:

答案 0 :(得分:2)

为什么不拨打ListRewrite.replace()而不是先删除然后添加?

如果出于某种原因无法满足您的目的,请尝试listRewrite.getOriginalList().indexOf(oldNode)

答案 1 :(得分:1)

您可以使用空语句作为占位符,并首先用空语句替换此节点。然后更改您的节点。然后用您的节点替换空语句。这看起来像黑客但有效。