我有一个带有数组作为实例变量/字段的类,它从另一个类传递到这个类中的第一个方法。我的印象是,我也应该能够从另一个方法访问它,而无需将其传递给该方法,但是当我尝试时,我得到了一个 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();
谁能告诉我我做错了什么?
-EDIT- 对这些方法的调用来自两个不同的类,每个类都声明了一个 PLoop 实例:
proc = new PLoop();