给定一个起始位置,我可以通过将其传递给org.eclipse.jdt.core.dom.NodeFinder类来查找节点。
NodeFinder node = new NodeFinder(root, m.getSourceStart(), m.getSourceEnd() - m.getSourceStart() + 1);
ASTNode n = node.getCoveredNode();让我们假设这个节点有一个父节点,并获得该节点的父n.getParent();。有人知道为什么它打印出父节点和节点吗?
例如,我们知道bar.foo()中foo()的起始点,所以如果我使用System.Out.Println(n.getParent().toString());,它会输出bar.foo()。它不应该只打印bar吗
提前感谢你的见解。
发布于 2012-02-22 03:53:12
您看到的行为是意料之中的。
在此示例中:
foo.barbar是一个SimpleName,它的父级是一个同时包含foo和bar的QualifiedName。因此父节点将包含多个AST节点,在其上调用toString将打印出该节点的所有子节点。
https://stackoverflow.com/questions/9373928
复制相似问题