Allman风格的匿名课程

时间:2010-12-21 00:09:46

标签: java coding-style anonymous-class

有关如何在与Allman indent style保持一致的同时使用匿名类的任何建议?我真的不喜欢我想出的任何事情,例如。

// Pass as parameter.
foo(new Clazz( )
    {
       // Do stuff.
    });

// Assign to variable.
Clazz bar = new Clazz( )
            {
               // Do stuff.
            };

3 个答案:

答案 0 :(得分:2)

我为自己的代码提出的最佳折衷方案是将匿名类缩进一个标签级别,并将右括号放在一个新行上。

// Pass as parameter.
foo(new Clazz( )
    {
       // Do stuff.
    }
);

void func () {
    foo(new Clazz( )
        {
           // Do stuff.
        }
    );
}

// Assign to variable.
Clazz bar = new Clazz( )
    {
        // Do stuff.
    };

答案 1 :(得分:1)

Allman风格实际上是关于{braces},而不是所有(括号)。如果你愿意,我想你可以自由地做两件事,但它看起来像是一个问题的根源(比如这个),没有明显的可读性回报。换句话说,一个逻辑迷信: - )

您可以按照http://mbreen.com/javastyle.html上的指南进行操作: “包含带代码块的声明的语句首先缩进为语句。”我认为这会将你的例子改为

foo (new Clazz( )
    {
        // Do stuff.
    });

Clazz bar = (
    new Clazz( )
    {
        // Do stuff.
    });

答案 2 :(得分:0)

这就是我所确定的。

Foo foo = new Foo()
{
    // Do stuff.
};

我只是不再在方法调用中定义匿名类。