java - 如何只创建一次实例变量?

标签 java arraylist

我有一个包含预先确定项目的 ArrayList 的类,在此示例中为水果。在我的代码中,我有一个构造函数调用一个填充我的列表的方法。

问题是每次实例化此类的实例时,都会重新填充列表。如何一次创建和填充列表?

public class Test {    
    ArrayList<String> lst = new ArrayList<String>();

    public Test() {
        populate();
    }

    public void populate() {
        lst.add("Apple");
        lst.add("Banana");
    }
}

最佳答案

你可以做到 static ,并使用 static initialization block .我也更愿意编程到 List 界面,我会使用菱形运算符 <> .类似的东西,

public class Test {
    private static List<String> lst = new ArrayList<>();
    static {
        lst.add("Apple");
        lst.add("Banana");
    }
    public Test() {
        // ...
    }
}

或者,使用 Arrays.asList(T...) 并消除像

这样的初始化 block
public class Test {
    private static List<String> lst = Arrays.asList("Apple", "Banana");
    public Test() {
        // ...
    }
}

关于java - 如何只创建一次实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33323491/

相关文章:

java - Spring Boot SSL已配置,服务器已启动但无法连接到端口

java - 我的抽屉导航所选项目未完全覆盖整个菜单区域

java - 如何在 OpenCV Python 中读取 Minoru 3d 网络摄像头的视频?

java - 使用 JetS3t 将未知数量的文件多次上传到 S3

java - 使用带有整数(索引)作为键的 HashMap 与使用 ArrayList

java - 为什么我会收到 nullPointerException

java - 使用java中的循环创建具有不同标识的类

java - 如何创建一个可以存储多个对象的arraylist类?

java - 从 ArrayList 内的 HashMap 创建 View

java - 如何删除 java.lang.IndexOutOfBoundsException?