0
A
回答
4
这是一个static
块。它在您的代码中第一次引用类时执行,并且它调用一个名为foo()
的静态方法。你可以找到更多关于静态块here的信息。正如@CommonsWare提到的,你可以用两种不同的方式初始化静态字段,内联声明时
static ArrayList<String> test = new ArrayList<String>() {{
add("A");
add("B");
add("C");
}};
但你可以看到它是不容易阅读。如果您使用静态块,而不是
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");
}
2
类的静态成员意味着它可以在不具有可变的实例调用。
例如
class my_class
{
static void my_static_function()
{
// whatever
}
}
你可以把它在两个方面:
my_class::my_static_function();
my_class m;
m.my_static_function();
2
这是一个静态初始化块,这是用于初始化静态变量。这些在一个类的生命中运行一次(不是每次创建实例时)。例如,您可能希望以通常无法完成的方式填充静态数据结构。
还有非静态初始化块。每次创建实例时都会运行它们。它们通常用于初始化匿名类的变量。知道这些在构造函数之前执行是很有用的。
class BlockTest {
static {
System.out.println("Static block.");
}
{
System.out.println("Non-static block.");
}
public BlockTest() {
System.out.println("Constructor.");
}
public static void main(String[] args) {
new BlockTest();
}
}
此代码将输出以下内容:
Static block.
Non-static block.
Constructor.
相关问题
- 1. 以为我明白静态类
- 2. 删除静态varialble安卓服务
- 3. 安卓:静态的ArrayList在服务
- 4. 安卓:调用从静态的Handler类
- 5. 我不明白
- 6. 我不明白如何安装组件
- 7. 我不明白的状态码 - 302/200
- 8. NullPointerException - 我不明白
- 9. options.fetch。我不明白
- 10. 我不明白struct.unpack
- 11. 安卓:白色上的白色微调
- 12. 安卓相机(froyo)不包含静态方法open()
- 13. 安卓,图库视图不显示我的静态图像和崩溃
- 14. 静态变量php测试功能不明白错误机制
- 15. JQuery Ajax表单提交仍然是静态的,我不明白为什么!
- 16. 安卓:静态变量和动态复杂的数据
- 17. 安卓活动透明度
- 18. 我不明白该程序
- 19. 我不明白的TypedValue
- 20. 我不明白hiera.yaml和hiera
- 21. 我只是不明白
- 22. PHP错误我不明白
- 23. iOS布局;我不明白
- 24. 我不明白的功能
- 25. 我不明白_chipmunk_cffi.lib cp
- 26. 我不明白password_hash()函数
- 27. SQL错误,我不明白
- 28. 。我不明白这一点
- 29. gawk行为我不明白
- 30. 我完全不明白UIPickerView