Стиль кода с аннотациями
Я не могу решить, между
@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
, я поместил ее в предыдущую строку, чтобы она не просто потерялась в шаблоне.