启动一个ArrayListby 的问题是什么:
new ArrayList<String>().add("something");
Run Code Online (Sandbox Code Playgroud)
为什么我们应该使用以下内容来启动ArrayList:
new ArrayList<String>() {{
add("something");
}};
Run Code Online (Sandbox Code Playgroud)
你不应该使用双括号初始化!你可以,但这并不意味着你应该.
回到你的问题
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)