2

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
4

1 に答える 1