假设我有一堂课
public class c1 {
public static ArrayList<String> list = new ArrayList<String>();
public c1() {
for (int i = 0; i < 5; i++) { //The size of the ArrayList is now 5
list.add("a");
}
}
}
但是如果我在另一个类中访问相同的 ArrayList,我将得到一个 SIZE = 0 的列表。
public class c2 {
public c2() {
System.out.println("c1.list.size() = " + c1.list.size()); //Prints 0
}
}
为什么会这样。如果变量是静态的,那么为什么要为类 c2 生成一个新列表?如果我在不同的类中访问它,如何确保获得相同的 ArrayList?
/ * ** *修改后的代码* ** * **** /
public class c1 {
public static ArrayList<String> list = new ArrayList<String>();
public static void AddToList(String str) { //This method is called to populate the list
list.add(str);
}
}
但是如果我在另一个类中访问同一个 ArrayList,我将得到一个 SIZE = 0 的列表,无论我调用了多少次 AddToList 方法。
public class c2 {
public c2() {
System.out.println("c1.list.size() = " + c1.list.size()); //Prints 0
}
}
当我在另一个类中使用 ArrayList 时,如何确保出现相同的更改?