我正在使用 java 遍历 xml 树..现在我在使用 node.getPreviousSibling() 获取节点的兄弟节点时遇到问题,代码如下:
sibling = pointer.getPreviousSibling();
while (sibling==null){
System.out.println("YAAAAAA");
sibling = sibling.getPreviousSibling(); ///here is the error occured
}
错误是 NullPointerException。 我知道如果没有 sibling , getPreviousSibling() 可能会返回 null 。 问题是:
- 为什么sibling.getPreviousSibling()给了我一个错误,而不是将空值分配给测试节点而不给我一个异常?
- 我应该怎么做才能让我的代码运行良好,即使它永远循环,因为同级将始终为空?
谢谢你..
编辑1:在上面的代码之前,我已经检查了指针是否为空
if(pointer==null){
System.out.println("NULL");
}
但是,它仍然表明指针不是空的.. 所以我想知道是什么触发了 NullPointerException
编辑2:我想出了另一种方法,似乎在分配指针时我犯了错误(不确定哪个是错误,但我确信有一个错误) 我的新方法是使用
获取节点父节点Node parent =pointer.getParentNode();
从那里我选择我想要的 child ..
感谢 @almas 和 @demostene 指出我以错误的方式调用 getPreviousSibling
最佳答案
您应该在 while 循环中检查非 null 和非 null,如下所示:
while (sibling != null && sibling.getPreviousSibling() != null){
而不是
while (sibling==null){
关于java - 由于 null 无法执行 getNextSibling(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27447520/