基础版

  1. List<String> list = new ArrayList<>();
  2. list.add("小明");
  3. list.add("小红");

进阶版

  1. // 方法1
  2. List<String> list = new ArrayList<String>() {{
  3. add("小明");
  4. add("小红");
  5. }};
  6. // 方法2
  7. List<String> list = new ArrayList<String>(Arrays.asList("小明", "小红"));

使用第三方包jcommander

  1. import com.beust.jcommander.internal.Lists;
  2. List<String> list = Lists.newArrayList("小明", "小红");

源码

  1. // 代码实现
  2. public static <K> List<K> newArrayList(K... c) {
  3. return new ArrayList(Arrays.asList(c));
  4. }

分析

  1. 通过源码可以发现,其实底层代码就是用的进阶版中分方法2,只是封装了一下。
  2. 所有有的时候查看他人写的插件,就会发现很多东西万变不离其中。

jcommander maven地址

  1. <!-- https://mvnrepository.com/artifact/com.beust/jcommander -->
  2. <dependency>
  3. <groupId>com.beust</groupId>
  4. <artifactId>jcommander</artifactId>
  5. <version>1.78</version>
  6. </dependency>