【问题标题】:unable to use Collection api methods [duplicate]无法使用 Collection api 方法 [重复]
【发布时间】:2019-08-21 19:51:23
【问题描述】:
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
}

【问题讨论】:

  • 将其包装在方法/构造函数/初始化块中。

标签: java collections


【解决方案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");

【讨论】:

    【解决方案2】:

    你只能在类体内有变量声明和初始化、方法声明(如果是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`.
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      • 2021-12-19
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多