新的ArrayList <String>()有什么问题.add("something")

hba*_*bak -3 java arraylist

启动一个ArrayListby 的问题是什么:

new ArrayList<String>().add("something");
Run Code Online (Sandbox Code Playgroud)

为什么我们应该使用以下内容来启动ArrayList:

new ArrayList<String>() {{ 
    add("something");
}};
Run Code Online (Sandbox Code Playgroud)

Tun*_*aki 5

不应该使用双括号初始化!你可以,但这并不意味着你应该.

回到你的问题

new ArrayList<String>().add("something"); 
Run Code Online (Sandbox Code Playgroud)

这个问题是这实际上返回了boolean:add方法的结果.您刚刚实例化的列表将丢失并将被垃圾回收.

你应该做的是保持对列表的引用并使用它来添加值.

List<String> list = new ArrayList<>();
list.add("something");

// or simpler
list = Arrays.asList("something"); // warning fixed-size list
Run Code Online (Sandbox Code Playgroud)