Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在EclipseJDT的ListRewrite中获取节点的索引_Java_Abstract Syntax Tree_Eclipse Jdt - Fatal编程技术网

Java 如何在EclipseJDT的ListRewrite中获取节点的索引

Java 如何在EclipseJDT的ListRewrite中获取节点的索引,java,abstract-syntax-tree,eclipse-jdt,Java,Abstract Syntax Tree,Eclipse Jdt,我正在使用EclipseJDT修改源代码的AST。我想修改MethodDeclaration节点。为此,我使用ASTVisitor访问了它并进行了更改。现在,我删除了过去的节点,并尝试使用ListRewrite.insertAt()方法在同一位置添加新节点。为此,我希望在删除节点之前获取该节点的索引。如何获取索引?为什么不调用ListRewrite.replace()而不是先删除然后添加 如果出于某种原因,这不符合您的目的,请尝试listRewrite.getOriginalList().ind

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

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


如果出于某种原因,这不符合您的目的,请尝试
listRewrite.getOriginalList().indexOf(oldNode)
为什么不调用
listRewrite.replace()
,而不是先删除然后添加


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

您可以使用空语句作为占位符,并首先用空语句替换此节点。然后对节点进行更改。然后用节点替换空语句。这看起来像是一个黑客攻击,但很有效。

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