Анонимные занятия в стиле Allman - PullRequest
6 голосов
/ 21 декабря 2010

Любые рекомендации о том, как использовать анонимные классы при соблюдении стиля отступа Allman ?Мне не очень нравится то, что я придумал, например,

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

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

Ответы [ 3 ]

2 голосов
/ 21 декабря 2010

Лучший компромисс, который я придумал для своего собственного кода, это сделать отступ для анонимного класса одним уровнем табуляции и поставить закрывающие скобки на новой строке.

// 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 голос
/ 30 апреля 2011

Стиль Allman на самом деле касается выравнивания {фигурных скобок}, а не всех (скобок). Я полагаю, вы можете делать и то, и другое, если хотите, но для меня это похоже на источник проблем (как этот), без четкой окупаемости в удобочитаемости. Другими словами, логический фетиш: -)

Вы можете следовать руководству на http://mbreen.com/javastyle.html: «Оператор, содержащий объявление с блоком кода, сначала ставится с отступом как оператор». Я думаю, что это изменило бы ваши примеры на

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

Clazz bar = (
    new Clazz( )
    {
        // Do stuff.
    });
0 голосов
/ 19 января 2011

Я остановился на этом.

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

И я просто больше не определяю анонимные классы внутри вызовов методов.

...