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

Rya*_*ith 3 java arraylist

我有一个ArrayList预定项目的课程,在这个例子中是水果.在我的代码中,我有一个构造函数调用一个填充我的列表的方法.

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

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

    public Test() {
        populate();
    }

    public void populate() {
        lst.add("Apple");
        lst.add("Banana");
    }
}
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 5

你可以做到static,并使用static初始化块.我也更喜欢编程到List界面,我会使用钻石操作符<>.就像是,

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

或者,使用Arrays.asList(T...)和消除初始化块

public class Test {
    private static List<String> lst = Arrays.asList("Apple", "Banana");
    public Test() {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)