Почему 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