gpt4 book ai didi

java - 由于 null 无法执行 getNextSibling()

转载 作者:行者123 更新时间:2023-12-02 05:09:37 26 4
gpt4 key购买 nike

我正在使用 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 。问题是:

  1. 为什么sibling.getPreviousSibling()给了我一个错误,而不是将空值分配给测试节点而不给我一个异常?
  2. 我应该怎么做才能让我的代码运行良好,即使它永远循环,因为同级将始终为空?

谢谢你..

编辑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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com