Java语法问题

Luc*_*ore 5 java syntax

是什么

static{
    //something
}
Run Code Online (Sandbox Code Playgroud)

在类定义体内声明是什么意思?

public class A extends B{
     static {
          C.register(new C(A.class,
                    (byte) D.x.getCode()) {
                         public DataSerializable newInstance() {
                              return new A();
                         }
                    }
               );
     }
 }
Run Code Online (Sandbox Code Playgroud)

Jac*_*nds 6

static块称为"静态初始化块".它与常规构造函数非常相似,只是它只能初始化静态变量.

我发现当一些静态变量的初始化可能抛出你想要处理的异常或者至少是log时,它会很有用.它在静态最终变量的初始化中特别有用.

您可以在此处阅读有关静态初始化块的更多信息:初始化字段