什么是
static{
//something
}在类定义体内声明的意思是什么?
public class A extends B{
static {
C.register(new C(A.class,
(byte) D.x.getCode()) {
public DataSerializable newInstance() {
return new A();
}
}
);
}
}发布于 2011-07-28 21:20:08
static块被称为“静态初始化块”。它与常规构造函数非常相似,只是它只能初始化静态变量。
我发现它在初始化一些静态变量可能抛出一个您想要处理或至少记录的异常时很有用。它在初始化静态最终变量时特别有用。
您可以在此处阅读有关静态初始化块的更多信息:Initializing Fields
发布于 2011-07-28 21:20:53
它执行一个代码块而不需要这个类的实例,也就是说,只要类加载器加载了这个类。
发布于 2011-07-28 21:21:52
这就变成了一个static initialisation block,它可以被写成一个静态方法。
https://stackoverflow.com/questions/6859599
复制相似问题