-1
我們開始在課堂上的名單上工作,並有這項任務將數字從列表中分離出來,沒有創建一個新列表。所以我在列表中使用了sepNum標籤。但它返回nullPointer,我不明白爲什麼。 nullPointer出現在separateNumbers方法的第二行。元素首先存在並且爲!null。列表nullPointer
public void separateNumbers() {
sepNum = first;
while (sepNum.info < 0 || sepNum.info > 9)
sepNum = sepNum.point;
Element previous = sepNum;
Element current = sepNum.point;
while (current != null) {
if (current.info < 0 || current.info > 9){
previous.point = current.point;
current = current.point;
} else {
previous = current.point;
current = current.point;
}
}
}
這裏的Element類:
class Element {
char info;
Element point;
public Element (char ch) {
this.info=ch;
this.point=null;
}
public String toString() {
return info+(point == null ? " " + point : "");
}
}
我一直在努力,現在摸不着頭腦了幾個小時。你們能幫忙嗎?
你有堆棧跟蹤嗎?如果它發生在第二行,那意味着'第一個'(不管那是什麼)是空的。 –
'first'的值必須爲空 - 您是否100%確定情況並非如此。請隨時添加更多證明(也許是調用方法) –
@SteveSmith不一定。由於sepNum變量在循環中被設置爲sepNum.point,所以sepNum.point也可能爲空。然後循環會在以下迭代中拋出NPE –