我在 A 类中有以下内容:
static ArrayList<Student> students;
我在 B 类中有以下内容:
public static void populate_students(ArrayList<Student> students) {
students = new ArrayList<Student>();
// ...
}
在 Debug模式下,我看到student
在方法中被初始化(不是null)但是返回到A类后,student为null。为什么会这样?我认为在 Java 中任何地方都可以看到对对象所做的更改。
如果将静态students
变量传递给populate_students
,该方法可以更改该变量引用的实例的状态,但不能分配新的该变量的值。因此,如果您将 null
传递给方法,则静态变量在方法返回后将保持为 null
。
相反,您需要从方法返回 List
:
public static ArrayList<Student> populate_students() {
ArrayList<Student> students = new ArrayList<Student>();
// ...
return students;
}
并将其分配给静态变量:
static ArrayList<Student> students = B.populate_students();