通过以下方式发起ArrayList
的问题是什么:
new ArrayList<String>().add("something");
为什么我们应该使用以下内容来发起ArrayList
:
new ArrayList<String>() {{
add("something");
}};
答案 0 :(得分:6)
你应该不使用double brace initialization!您可以,但这并不意味着 。
回到你的问题
new ArrayList<String>().add("something");
这个问题是这实际上会返回boolean
:add
方法的结果。您刚刚实例化的列表将丢失并将被垃圾收集。
您应该做的是保留对列表的引用并使用它来添加值。
List<String> list = new ArrayList<>();
list.add("something");
// or simpler
list = Arrays.asList("something"); // warning fixed-size list
答案 1 :(得分:0)
您使用的语法错误。如果你按照这个答案,你可以使它工作:
Initialization of an ArrayList in one line
ArrayList<String> list = new ArrayList<String>();
list.add("something");
答案 2 :(得分:0)
new Array<String>().add("Something");
不是唯一的方法。你可以使用类似的东西:
Arrays.asList("Something","Something Else");
但这会返回List<String>
。