0

Java中的静态初始化器有什么替代方法吗?

只是一个随机的例子:

private static List<String> list;

static {
    list = new ArrayList<>();
    list.add("foo")
}

它不会使调试变得更加困难吗?

4

1 回答 1

4

如果你需要一个静态列表,你需要在**某处*初始化它。静态初始化器是一个不错的选择,尽管在此示例中,您可以将其缩减为单行:

private static List<String> list = new ArrayList<>(Arrays.asList("foo"));

或者,如果在程序的生命周期内不应修改此列表,则更短:

private static final List<String> list = Collections.singletonList("foo");

或者如评论中所述,在 Java 9 及更高版本中:

private static final List<String> list = List.of("foo");
于 2018-06-26T20:08:52.673 回答