这些List.of()方法是方便的静态助手,可以在一个调用中创建一个固定大小的列表(而不是先创建一个空列表,然后再调用add几次)。碰巧此调用返回的列表是不可修改的(不能添加或删除任何元素)。
例如,比较:
ArrayList<String> supportedLanguages = new ArrayList<>();
supportedLanguages.add("en-us");
supportedLanguages.add("en-gb");
supportedLanguages.add("de");
Run Code Online (Sandbox Code Playgroud)
至:
List<String> supportedLanguages = List.of("en-us", "en-gb", "de");
Run Code Online (Sandbox Code Playgroud)
恰好有十一个这样的重载,从零到十个元素(List.of()变成一个空的不可修改的列表),并且较大的情况使用带有sign的vararg重载来处理@SafeVarargs static <E> List<E> of?(E... elements)。