我想将List
对象设置为类字段,然后使用ArrayList()
作为List
的具体类。
原因是我想在程序的不同部分多次调用 setData
方法,并且每次都必须将数据添加到相同的对象数据,而不是不同的对象数据。
这是代码:
import java.util.ArrayList;
import java.util.List;
public class container {
private static List<String> data = ArrayList<String>();
public static List<String> getData() {
return data;
}
public static void setData(String a) {
data.add(a);
}
}
我猜这段代码应该会导致错误。
如何更改代码,使其具有正确语法的相似结果?
如果这段代码不会导致错误,谁能告诉我何时(在执行程序的哪一部分)将创建静态数据对象? 附:我不打算创建容器对象,只是想在程序中多次调用container.setData(String a)方法。
最佳答案
如果您添加缺少的 new
单词,您的代码就可以工作,并且它将按您想要的方式工作。当加载container
类时,ArrayList将被实例化。当控制流到达引用此类的类时,通常会发生这种情况。因此,每当您调用这些方法中的任何一个时,数据字段都已经准备好。
但是您可能想了解 ' singleton design pattern ' 并且您可能希望同步对共享对象的访问,如果您 create several threads (或者您使用一个可以为您完成此操作的库)。
import java.util.ArrayList;
import java.util.List;
public class container {
private static List<String> data = new ArrayList<String>(); // <-- new was missing
public static List<String> getData() {
return data;
}
public static void setData(String a) {
data.add(a);
}
}
关于java - 将对象列为类字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22350565/