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