小编典典

实例变量部分中的Java ArrayList add()方法

java

在通常声明/定义实例变量的Java类中,我想将a
ArrayList作为实例变量之一,并使用一些元素作为开始对其进行初始化。一种方法是声明ArrayList并在构造函数中对其进行初始化。但是,我想知道为什么在构造函数外部初始化值是非法的。例如,

public class Test {
    // some instance variables...

    private ArrayList<String> list = new ArrayList<String>();
    list.add("asdf");

    // methods here...
}

所以我知道这是非法的。但是为什么这是非法的呢?


阅读 218

收藏
2020-11-01

共1个答案

小编典典

您不能在类中自由执行语句。它们应该在方法内部。我建议您将此行添加到类的构造函数或类初始化块中。

在类构造函数中:

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...
}
2020-11-01