Почему печать родительского узла узла возвращает родительские + дочерние узлы? - PullRequest
0 голосов
/ 21 февраля 2012

Учитывая начальную позицию, я могу найти узел, передав его в 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?

Заранее благодарим за понимание.

1 Ответ

0 голосов
/ 21 февраля 2012

Ожидаемое поведение ожидается.

В этом примере:

foo.bar

bar - это SimpleName, а его родительский элемент - QualifiedName, который содержит foo и bar. Таким образом, родительский узел будет содержать более одного узла AST, и вызов на нем toString выведет все дочерние узлы этого узла.

...