我有需要的阵列作为一个参数从另一个类的方法:访问元素 - 爪哇
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