有关如何在与Allman indent style保持一致的同时使用匿名类的任何建议?我真的不喜欢我想出的任何事情,例如。
// Pass as parameter.
foo(new Clazz( )
{
// Do stuff.
});
// Assign to variable.
Clazz bar = new Clazz( )
{
// Do stuff.
};
答案 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.
};
我只是不再在方法调用中定义匿名类。