为什么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 –