Удаление всех дочерних элементов из элемента работает при использовании getLastChild (), но выдает NullPointerException при использовании getFirstChild () - PullRequest
4 голосов
/ 05 апреля 2011

Я использую GWT, и мне приходится напрямую манипулировать DOM из-за глючного виджета, который не центрируется должным образом.Я написал следующий код для очистки дочерних элементов в элементе <body> во время переходов представления, поскольку RootPanel.clear () не полностью очищает HTML:

while (root.hasChildNodes()) {
    root.removeChild(root.getFirstChild());
}

Но он вызывает исключение NullPointerException.Однако простое изменение getFirstChild() на getLastChild() работает отлично.

while (root.hasChildNodes()) {
    root.removeChild(root.getLastChild());
}

Есть идеи почему?

1 Ответ

1 голос
/ 06 апреля 2011

При удалении первого дочернего элемента первый дочерний элемент теперь равен нулю.второй ребенок - это то, что вы должны будете удалить вместо первого, и так далее.Таким образом, вызов getFirstChild возвращает вам нулевое значение, и вы можете увидеть NPE.Это не относится к getLastChild.

...