给定一个起始位置,我可以通过将它传递给org.eclipse.jdt.core.dom.NodeFinder
类来找到它。
NodeFinder node = new NodeFinder(root, m.getSourceStart(), m.getSourceEnd() - m.getSourceStart() + 1);
ASTNode n = node.getCoveredNode();
假设此节点有父节点并获取节点的父节点n.getParent();
是否有人知道它为什么打印出父节点和节点?
例如,我们知道foo()
中bar.foo()
的起点,所以如果我System.Out.Println(n.getParent().toString());
,则会打印bar.foo()
。它不应该只打印bar
吗?
提前感谢您的见解。
答案 0 :(得分:0)
您所看到的行为是预期的。
在这个例子中:
foo.bar
bar
是SimpleName
,其父级是QualifiedName
,其中包含foo
和bar
。因此父节点将包含多个AST节点,并在其上调用toString
将打印出该节点的所有子节点。