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

how to get index of a node in ListRewrite of Eclipse JDT

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

为什么不调用 ListRewrite.replace() 而不是先删除再添加?

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

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