为什么 Java只接受方括号方法?做什么用的?
{
// Do something
}
我还注意到它在静态块之后但在构造函数之前自动执行。虽然之前执行过超类的构造函数。
这个订单有具体原因吗?
这是我为发现执行顺序而制作的JUnit :
public class TestClass extends TestSuperClass {
public TestClass() {
System.out.println("constructor");
}
@Test
public void test() {
System.out.println("test");
}
{
System.out.println("brackets");
}
static {
System.out.println("static");
}
}
public class TestSuperClass {
public TestSuperClass() {
System.out.println("super class constructor");
}
{
System.out.println("super class brackets");
}
static {
System.out.println("super class static");
}
}
作为输出,我得到:
super class static
static
super class brackets
super class constructor
brackets
constructor
test