我正在阅读未编写的代码。我偶然发现以下陈述:

    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()));
        }
    });


我知道第二个{ ... }内部调用的方法是Expectations方法。


但是您如何称呼这种代码编写呢?
特别是您如何称呼第二个{ ... }

最佳答案

这是一个匿名类,其中包含实例初始化程序块。因此,将两者分开:

// 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) {}
}


在任何构造函数的主体之前,instance initializer与实例变量初始化程序同时按文本顺序隐式调用。

08-27 15:24