我正在使用java..right遍历xml树现在我在使用node.getPreviousSibling()获取节点的兄弟时遇到了麻烦,这里是代码:
sibling = pointer.getPreviousSibling();
while (sibling==null){
System.out.println("YAAAAAA");
sibling = sibling.getPreviousSibling(); ///here is the error occured
}
错误是NullPointerException。 我知道如果没有兄弟,getPreviousSibling()可以返回null。 问题是:
编辑1:在上面的代码之前,我已经检查指针是否为空
if(pointer==null){
System.out.println("NULL");
}
但仍然显示指针不是null。 所以我想知道是什么触发了NullPointerException
编辑2:我想到了另一种方式,似乎我在分配指针时出错(不确定哪一个是错误,但我确定有错误) 我的新方法是使用
获取节点父节点Node parent =pointer.getParentNode();
从那里我选择了我想要的孩子..
感谢@almas和@demostene指出我正在以错误的方式调用getPreviousSibling
答案 0 :(得分:2)
你应该在你的while循环中检查非null而不是null:
while (sibling != null && sibling.getPreviousSibling() != null){
而不是
while (sibling==null){
答案 1 :(得分:0)
您正在对空对象调用getPreviousSibling()
,因为代码循环直到sibling
变为非空。