爲什麼Java接受一個括號裏只有方法?什麼是爲了?只有大括號的方法
{
// Do something
}
我還注意到它在static-block之後但在構造函數之前自動執行。儘管之前執行了超類的構造函數。
這個訂單是否有特定的原因?
這是我爲發現的執行順序進行的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
*「這個訂單是否有特定的原因?」* - 在JLS 15.9.4中解釋 - http://docs.oracle.com/javase/specs/jls/se8/html/jls-15。 html#jls-15.9.4 –