Стиль кода с аннотациями

Я не могу решить, между

@MyAnnotation(param1="paramval")
public void foo(){}

и

@MyAnnotation(param1="paramval") public void foo(){}

Появилась ли лучшая практика?

Ответ 1

Мы используем первый случай.

Аннотации в некоторых случаях не помещаются в одну строку.

  • Что происходит в аннотациях, мы добавляем в наш проект ответственность за ответственность. Аннотации для действительно разных проблем в одной строке становятся грязными.
  • Кроме того, некоторые аннотации могут стать действительно большими и быть многострочными в отдельности (я думаю о переопределении отображения Hibernate в подклассе).

Ответ 2

Аннотации могут иметь параметры, они могут стать очень длинными, если вы помещаете аннотацию плюс ее параметры плюс заголовок метода в одну строку.

@MyAnnotation(name = "This is the name", version = "1.0")
public void foo () {
    // ...
}

Ответ 3

Я бы сказал, что для этого нет жесткого правила. Возможно, вы захотите сделать это в зависимости от ситуации.

Например, если ваш класс имеет большой набор коротких методов, иногда желательно сконденсировать их на одну строку для уменьшения шума кода:

@MyAnnotation public int foo1(){ return 1; }
@MyAnnotation public int foo2(){ return 2; }
@MyAnnotation public int foo3(){ return 3; }
etc etc

По-видимому, если у вас есть более существенный метод со сложной аннотацией, расширенная форма более желательна.

Ответ 4

Ну, мы даже не можем договориться, куда положить {: - (

Мое предпочтение - первое, тем более, что может быть несколько аннотаций.

Примеры, с которыми я знаком, используют этот стиль.

Ответ 5

Обычно я использовал бы первый случай.

Однако один конкретный случай, когда я помещал аннотацию в ту же строку, связан с аннотацией @Test в JUnit. Это довольно коротко, обычно не принимает никаких параметров и, прежде всего, обычно появляется в контексте, когда человеческий читатель подсознательно ожидает, что он будет там в любом случае. Когда вы добавляете аннотации к методам public void с нулевым методом в тестовом классе, я бы сказал, что лишняя краткость перескакивания аннотации в одну и ту же строку лучше (т.е. Меньше отвлечения внимания, можно увидеть больше кода на экране), чем положить его на отдельной строке,

В общем случае вы хотите, чтобы ваши аннотации выделялись, поскольку они часто являются отходом от того, что разработчик ожидал бы от unannotated метода. Например, если я установил тайм-аут в моей аннотации @Test, я поместил ее в предыдущую строку, чтобы она не просто потерялась в шаблоне.