gpt4 book ai didi

java - Android:我不明白:static { foo();}

转载 作者:行者123 更新时间:2023-12-01 07:04:09 26 4
gpt4 key购买 nike

有时我会在 Android 的类里面看到类似的东西:

static
{
foo();
}
  • 这是做什么的?

  • 为什么?

最佳答案

这是一个静态 block 。它在代码中第一次引用该类时执行,并且调用一个名为 foo() 的静态方法。您可以找到有关静态 block 的更多信息here 。正如 @CommonsWare 所提到的,您可以通过两种不同的方式初始化静态字段,内联声明时间

static ArrayList<String> test = new ArrayList<String>() {{
add("A");
add("B");
add("C");
}};

但正如你所看到的,它并不容易阅读。如果您使用静态 block 代替

  static ArrayList<String> test;
static {
test = new ArrayList<>();
test.add("a");
test.add("b");
test.add("c");
}

或者正如你的问题一样

static ArrayList<String> test;
static {
foo();
}

private static void foo() {
test = new ArrayList<>();
test.add("a");
test.add("b");
test.add("c");
}

关于java - Android:我不明白:static { foo();},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30830835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com