在通常声明/定义实例变量的Java类中,我想将a ArrayList作为实例变量之一,并使用一些元素作为开始对其进行初始化。一种方法是声明ArrayList并在构造函数中对其进行初始化。但是,我想知道为什么在构造函数外部初始化值是非法的。例如,
ArrayList
public class Test { // some instance variables... private ArrayList<String> list = new ArrayList<String>(); list.add("asdf"); // methods here... }
所以我知道这是非法的。但是为什么这是非法的呢?
您不能在类中自由执行语句。它们应该在方法内部。我建议您将此行添加到类的构造函数或类初始化块中。
在类构造函数中:
public class Test { // some instance variables... private List<String> list = new ArrayList<>(); public Test() { list.add("asdf"); } // methods here... }
在类初始化块中:
public class Test { // some instance variables... private List<String> list = new ArrayList<>(); { list.add("asdf"); } // methods here... }