6

Allman のインデント スタイルと一貫性を保ちながら匿名クラスを使用する方法に関する推奨事項はありますか? 私が思いついたものは本当に好きではありません。

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

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

3 に答える 3

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.
    };
于 2010-12-21T05:06:32.287 に答える
1

オールマン スタイルは、すべての (ブラケット) ではなく、{ブレース} を整列させることです。必要に応じて両方を自由に実行できると思いますが、読みやすさの明確な見返りなしに、(このような) 問題の原因のように思えます。言い換えれば、論理的なフェチ :-)

http://mbreen.com/javastyle.htmlのガイドに従うことができます:「コード ブロックを含む宣言を含むステートメントは、ステートメントとして最初にインデントされます。」それはあなたの例を次のように変えると思います

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

Clazz bar = (
    new Clazz( )
    {
        // Do stuff.
    });
于 2011-04-30T06:15:45.023 に答える
0

これが私が決めたものです。

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

そして、メソッド呼び出し内で匿名クラスを定義しなくなりました。

于 2011-01-19T01:43:31.817 に答える