我的问题是关于静态关键字的一个特殊用法。可以使用static
关键字覆盖不属于任何函数的类中的代码块。例如下面的代码编译:
public class Test {
private static final int a;
static {
a = 5;
doSomething(a);
}
private static int doSomething(int x) {
return (x+5);
}
}
如果你移除static
关键字,它会报错,因为变量a
是final
。然而,可以同时删除final
和static
关键字并使其编译。
这两方面都让我感到困惑。我怎么能有一个不属于任何方法的代码段呢?如何调用它呢?一般来说,这种用法的目的是什么?或者更好的是,我可以在哪里找到相关的文档?