當我調用我的方法來創建傳遞的參數的新字符串副本時,出現空指針異常。這個方法是從我的main調用的。方法的空指針異常
爲什麼我得到這個錯誤,我該如何解決它,所以它不指向空?
它說的錯誤是在這條線發生的事情:front.data = original.charAt(i);
,如果我改變大小爲-1它提供了有關該行back.next = newNode;
主要(方法的主要組成部分)的錯誤:
public class TestLString {
/** Main method */
public static void main(String[] args) {
String str1 = "Hello, my name is Alphose!";
LString lstr1 = new LString(str1);
編輯:這似乎工作!
public LString(String original){
size = 0;
for(int i = 0; i< original.length(); i++){
if(original.length() == 0){ ///changed
front = new Node();
front.data = original.charAt(i);
front.next = back;
size++;
} else{
Node newNode = new Node();
newNode.data = original.charAt(i);
Node back = new Node();
back.next = newNode;
newNode.next = null;
back = newNode;
}
}
}
我初始化的數據字段(對不起)。讓我知道如果我可以添加任何其他東西。
public class LString{
private Node front = null; //first val in list
private Node back; //last val in list
private int size = 0;
private int i;
private int offset;
public LString(){
//construct empty list
Node LString = new Node();
front = null;
}
'front'和'size'從哪裏來?我有一種感覺,我們沒有全部的圖片 –
從你的代碼和描述來看,最合理的解釋是'front'是空的。但正如@KevinBowersox所說的,我們無法看到'front'被初始化的位置。 –
請提供堆棧跟蹤。幫助我們更快速地進行調試。 –