如何在同一语句中创建和初始化(在 Java 中)列表 <String[]>? (编辑请注意:这*不*只是一个列表<String>)

How to Create and Initialize (in Java) a List<String[]> in the same statement? (Editors please NOTE: this *not* the same as just a List<String>)

是否可以将 String[]List 的创建与 List 中第一个条目的初始化结合起来?

final List<String[]> rolesCsv = new ArrayList<String[]>();
rolesCsv.add(new String[] {"Role Name","Description"});

换句话说,我可以将以上两行合并为一行,同时创建和初始化 List 吗?

List<String[]> 确实需要可变以便稍后添加到 List,是的。

编辑重要提示:创建和初始化此定义与简单创建和初始化的解决方案大不相同List<String>- 在您自动 link 这个问题到常见答案之前对于后者,请停止!问题不同,需要不同的解决方案。

List<String> sameline = Arrays.asList("1", "2", "3");

这是创建初始化 Java列表在同一行的方法。

@user16320675 在评论(上)中给出了正确答案,并且效果很好。它处理外部 List 和内部字符串数组的创建。指向简单数组 asList 的其他答案是针对简单字符串的,这不是所问的问题。

创建可变列表

final List<String[]> rolesCsv =
     new ArrayList<String[]>Collections.singletonList(new String[]{"Role Name","Description"}));

否则(尽管是数组,它的元素不是不可变的)

final List<String[]> rolesCsv =
      Collections.singletonList(new String[]{"Role Name","Description"})