我在使用当前的程序时遇到了困难。当我尝试检查节点(一个对象)是否为null时,我得到一个NullPointerException,我虽然你被允许这样做。我在这个if语句中得到了异常
else if(direction == 0) {
cursor = cursor.getParent();
if(cursor.getRight() != null)
direction = 1;
else
direction = 0;
}
我在第三行'if(cursor.getRight()!= null)'上得到了异常,我尝试了多种方法来编写它并仍然得到相同的异常。 ('if(null!= cursor.getRight)'和'if(!(null == cursor.getRight())' getRight()方法返回下一个节点(对象)的实例,并在初始化该对象时初始化为null。
答案 0 :(得分:1)
我想你可能会发现" cursor.getParent()"返回null,从而设置" cursor"在第二行上为null。然后,当第三行尝试调用" getRight()"在null对象上,您会收到NullPointerException。
答案 1 :(得分:1)
else if(direction == 0) {
cursor = cursor.getParent();
if(cursor.getRight() != null)
direction = 1;
else
direction = 0;
}
获得NullPointerException
的原因是因为cursor
设置为null
,因此当您尝试cursor.getRight()
时,它会评估为null.getRight()
因此异常
我建议您尝试以下代码:
else if(direction == 0) {
cursor = cursor.getParent();
if(cursor!=null && cursor.getRight() != null)
direction = 1;
else
direction = 0;
}
答案 2 :(得分:0)
可能在第二行getParent上将Cursor设置为null,然后您尝试访问null元素的方法。在检查cursor.getRight()是否为null之前,首先检查以确保游标不为null。
答案 3 :(得分:0)
else if(direction == 0) {
cursor = cursor.getParent();
if(cursor != null && cursor.getRight() != null)
direction = 1;
else
direction = 0;
}