如何在 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,但有效。
我正在使用 Eclipse JDT 修改源代码的 AST。我想修改一个 MethodDeclaration
节点。为此,我使用 ASTVisitor
访问了它并进行了更改。现在我删除了过去的节点,并尝试使用 ListRewrite.insertAt()
方法在同一位置添加新节点。为此,我想在删除节点之前获取节点的索引。如何获取索引?
为什么不调用 ListRewrite.replace()
而不是先删除再添加?
如果出于某种原因这不能满足您的目的,请尝试 listRewrite.getOriginalList().indexOf(oldNode)
。
您可以使用空语句作为占位符,并先将此节点替换为空语句。然后对您的节点进行更改。然后用您的节点替换空语句。这看起来像 hack,但有效。