2

私が書いていないコードを読んでいます。私は次の声明に出くわしました:

    context.checking(new org.jmock.Expectations() {
        {
            allowing(habilitationManager).hasRole(RoleDtoEnum.ROLE_NEWS);
            will(returnValue(true));
            allowing(habilitationManager).hasRole(RoleDtoEnum.ROLE_STAT);
            will(returnValue(true));
            allowing(habilitationManager).getUser();
            will(returnValue(getUserMock()));
            oneOf(parametreService).getParametre(PPP);
            will(returnValue(getMockPPP()));
        }
    });

{ ... }2番目の内部で呼び出されるメソッドはメソッドであることを理解していExpectationsます。

  • しかし、この種のコード作成をどのように呼びますか?
  • 特に 2 番目の をどのように呼びます{ ... }か?
4

1 に答える 1

7

これは、インスタンス初期化ブロックを含む匿名クラスです。したがって、2つを分離するには:

// This is an anonymous class
Expectations expectations = new Expectations() {
    // Class body here
};

class Foo {

    // This is an instance initializer block in a normal class
    {
        System.out.println("You'll see this via either constructor");
    }

    Foo(int x) {}

    Foo(String y) {}
}

インスタンス初期化子は、コンストラクターの本体の前に、インスタンス変数初期化子と同時に、テキストの順序で暗黙的に呼び出されます。

于 2013-10-28T17:21:35.630 に答える