我有需要的陣列作爲一個參數從另一個類的方法:訪問元素 - 爪哇
public void memPass(Memory[] memLocList) {
memList = memLocList;
for (int i = 0; i < 10; i++) {
System.out.println(memList[i].getSomething());
}
}
CNC中 上面打印出10個值(整數),但如果我在另一個方法中嘗試使用0 & 10之間的整數,我會得到一個NPE。
任何人都可以告訴我如何從另一個方法訪問此數組的元素,這也從另一個類獲取參數?
我試圖做的東西沿着這些路線:
public void accessArray(int mem) {
int someInt = memList[mem].getSomething();
}
CNC中對不起,我要補充一點,這給出了一個NullPointerException異常。
-NEW編輯 -
行,我現在已經編輯的代碼,以便所有我在類是:
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(int mem) {
System.out.println(memList.length);
}
}
第一種方法打印代表「的memlist的長度的整數「第二個給NPE。
你有什麼看起來足夠合理。 [SSCCE](http://sscce.org)怎麼樣? memPass()實際上是否被調用? 「memLocList」的值是什麼?您是否嘗試過使用調試器來確定_what_爲空? – 2012-07-27 19:10:36
是同一類的memPass()和accessArray()方法嗎? memList是該類的成員變量嗎?如果對兩者都是,那麼你已經寫在這裏的代碼按原樣運行。 – DGH 2012-07-27 19:10:53
看看你的問題標籤'nullpointerexception',這意味着在'memList'的'mem'索引處有'null'值,你正試圖使用'getSomething()'。或者'memList'爲空(這與前面方法中的'memList'不同) – Xeon 2012-07-27 19:11:58