java - 将对象列为类字段

标签 java

我想将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/

相关文章:

java - 从 gwt.xml 中删除 GWT 继承的模块后,GWT 仍会尝试加载它

java - 如何动态地将 fragment 添加到现有 fragment ?

java - 异步for循环没有挂起

Java : javap ERROR:Could not find . 类

Java Swing JTextField.getText 未返回值

java - 哪个 GUI 生成器可用于 2D 游戏用户界面建模?

java - 为什么我必须输入两次数字?为什么第一个数字只给出0?

java - 在不使用默认/内置应用程序的情况下使用 JavaMail API 在 Android 中发送电子邮件

java - ArrayList<String> 大小在服务器和客户端之间不持久

java - 如何强制日期在时区更改后不更改日期?