Я не могу решить, между
@MyAnnotation(param1="paramval")
public void foo(){}
и
@MyAnnotation(param1="paramval") public void foo(){}
Появилась ли лучшая практика?
Я не могу решить, между
@MyAnnotation(param1="paramval")
public void foo(){}
и
@MyAnnotation(param1="paramval") public void foo(){}
Появилась ли лучшая практика?
Мы используем первый случай.
Аннотации в некоторых случаях не помещаются в одну строку.
Аннотации могут иметь параметры, они могут стать очень длинными, если вы помещаете аннотацию плюс ее параметры плюс заголовок метода в одну строку.
@MyAnnotation(name = "This is the name", version = "1.0")
public void foo () {
// ...
}
Я бы сказал, что для этого нет жесткого правила. Возможно, вы захотите сделать это в зависимости от ситуации.
Например, если ваш класс имеет большой набор коротких методов, иногда желательно сконденсировать их на одну строку для уменьшения шума кода:
@MyAnnotation public int foo1(){ return 1; }
@MyAnnotation public int foo2(){ return 2; }
@MyAnnotation public int foo3(){ return 3; }
etc etc
По-видимому, если у вас есть более существенный метод со сложной аннотацией, расширенная форма более желательна.
Ну, мы даже не можем договориться, куда положить {: - (
Мое предпочтение - первое, тем более, что может быть несколько аннотаций.
Примеры, с которыми я знаком, используют этот стиль.
Обычно я использовал бы первый случай.
Однако один конкретный случай, когда я помещал аннотацию в ту же строку, связан с аннотацией @Test
в JUnit. Это довольно коротко, обычно не принимает никаких параметров и, прежде всего, обычно появляется в контексте, когда человеческий читатель подсознательно ожидает, что он будет там в любом случае. Когда вы добавляете аннотации к методам public void
с нулевым методом в тестовом классе, я бы сказал, что лишняя краткость перескакивания аннотации в одну и ту же строку лучше (т.е. Меньше отвлечения внимания, можно увидеть больше кода на экране), чем положить его на отдельной строке,
В общем случае вы хотите, чтобы ваши аннотации выделялись, поскольку они часто являются отходом от того, что разработчик ожидал бы от unannotated метода. Например, если я установил тайм-аут в моей аннотации @Test
, я поместил ее в предыдущую строку, чтобы она не просто потерялась в шаблоне.