无法使用Collection API方法

时间:2019-03-31 14:02:48

标签: java collections

import java.util.ArrayList;
import java.util.List;

public class Test {
    List<String> list= new ArrayList<String>();
    list.add("sdp");// This line isn't working
}

2 个答案:

答案 0 :(得分:1)

问题是您在类上下文中,可以在这里声明和初始化变量。要在变量上调用方法,您需要在构造函数中执行该操作:

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

    public Test() {
        list.add("sdp");
    }
}

或在一种方法中

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

    private void test() {
        list.add("sdp");
    }
}

此外,仅在必要时使用字段变量。

如果要使用元素初始化List,则可以使用Arrays.asList()

List<String> list = Arrays.asList("sdp", "test");

如果只有一个元素,请使用Collections.singletonList()(这将返回一个不可变的列表,因此您以后不能再添加任何元素):

List<String> list = Collections.singletonList("sdp");

答案 1 :(得分:1)

您只能在类主体内部拥有变量声明和初始化,方法声明(对于 Abstract 类而言)和定义(因此您不能具有表达式 )。如果要初始化变量,则可以内联它或将初始化逻辑包装在初始化块中。请查看docs,了解初始化类属性的各种方法。

下面是初始化类属性的一种方法。

import java.util.ArrayList;
import java.util.List;

public class Test {


    List<String> list= new ArrayList<String>();

    {
       list.add("sdp"); //this will be executed when you create an instance of class `Test`.
    }

}