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
}
答案 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`.
}
}