我有一個類的數組作爲實例變量/字段,它從另一個類傳遞到第一個方法。 我的印象是,我也應該能夠從另一種方法訪問它,而不會將它傳遞給該方法,但是當我嘗試時,我會得到一個NPE。數組作爲實例變量作爲參數傳遞
下面的代碼:
public class PLoop {
// instance variable
public Memory[] memList;
// method 1
public void memPass(Memory[] memLocList) {
memList = memLocList;
System.out.println(memList.length);
}
// method 2
public void accessArray() {
System.out.println(memList.length);
}
}
當第一方法被稱爲我得到印刷到表示數組的長度的控制檯,但一個整數,當第二方法被稱爲它的NPE,提示不相同的數組。
通過單擊GUI上的按鈕調用第二種方法。與此按鈕相關的方法只有一個電話:
PLoop.accessArray();
任何人都可以告訴我,我做錯了什麼?
CNC中 這些方法的調用來自兩個不同的類,每個聲明PLoop的一個實例:
proc = new PLoop();
你在'memPass'之前調用'accessArray'嗎? (或在另一個對象上?) – 2012-07-30 12:47:00
您已將此簡化爲代碼不會顯示問題的點。只要你在同一個對象上調用兩個方法,這段代碼就可以完美工作。如果你用不同的物體稱呼它們,那麼那就是另一個故事。 – 2012-07-30 12:47:59
首先調用memPass,然後單擊GUI上的一個按鈕來調用accessArray。 – Robert 2012-07-30 12:48:16