java - 使用静态初始化器是一个好习惯吗?

标签 java static-initialization static-initializer

Java 中是否有静态初始化器的替代方案?

只是一个随机的例子:

private static List<String> list;

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

这不会让调试变得更加困难吗?

最佳答案

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

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 - 使用静态初始化器是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51050560/

相关文章:

java - java反序列化时类初始化的顺序

java - 在 Java 中使用 MIME 自定义邮件 header

java - While循环+ sleep 减慢PC速度

list - Flutter:我如何在列表中实现列表?错误:只能在initializers.dart中访问静态成员(implicit_this_reference_in_initializer)

c++ - .crt 部分?这个警告是什么意思?

java - 与使用静态初始化器作为伪入口点相比,main(...) 有什么好处?

java静态初始化器被调用两次

java - R 树节点应该有多少个子节点(最小值、最大值)?

java - 如何计算最近的餐厅,但我的代码显示了附近的所有餐厅

java - 为什么从静态初始化程序启动线程并等待其完成会导致死锁?