代码之家  ›  专栏  ›  技术社区  ›  Mahozad

使用静态初始化器是一个好的实践吗?

  •  0
  • Mahozad  · 技术社区  · 7 年前

    在java中,有没有替代静态初始化的方法?

    只是一个随机的例子:

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

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

    1 回复  |  直到 7 年前
        1
  •  4
  •   Mureinik    7 年前

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

    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");
    
    推荐文章