使用静态初始化程序是一种好习惯吗?
Is it a good practice to use static initializers?
在 Java 中是否有替代静态初始化器的方法?
随便举个例子:
private static List<String> list;
static {
list = new ArrayList<>();
list.add("foo")
}
这不是让调试更难吗?
如果您需要静态列表,您需要在**某处*对其进行初始化。静态初始化程序是一个不错的选择,尽管在此示例中,您可以 trim 将其缩减为一个衬里:
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");
在 Java 中是否有替代静态初始化器的方法?
随便举个例子:
private static List<String> list;
static {
list = new ArrayList<>();
list.add("foo")
}
这不是让调试更难吗?
如果您需要静态列表,您需要在**某处*对其进行初始化。静态初始化程序是一个不错的选择,尽管在此示例中,您可以 trim 将其缩减为一个衬里:
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");