带注释的代码样式

时间:2009-09-23 07:29:19

标签: java coding-style annotations

我无法在

之间下定决心
@MyAnnotation(param1="paramval")
public void foo(){}

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

是否出现了最佳做法?

5 个答案:

答案 0 :(得分:20)

我们使用第一种情况。

在某些情况下,注释不适合一行

  • 注释会在我们的项目中不断加起来,责任之后的责任。在同一条线上注明真正不同的问题会变得很混乱。
  • 此外,一些注释可能会变得非常大,并且可以自行构成多行注释(我想到了子类中的Hibernate映射重定义)。

答案 1 :(得分:2)

注释可以有参数,如果将注释及其参数加上方法标题全部放在一行上,它会变得很长。

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

答案 2 :(得分:2)

我认为没有严格的快速规则。您可能希望根据具体情况进行操作。

例如,如果你的类有大量的短方法,有时候需要将它们压缩到一行来减少代码噪声:

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

同样地,如果你有一个更复杂的注释方法,那么扩展形式是更理想的。

答案 3 :(得分:1)

好吧,我们甚至不能同意把{: - (

我的偏好是前者,特别是因为可以有多个注释。

我熟悉的例子使用这种风格。

答案 4 :(得分:1)

我通常会使用第一种情况。

但是,我将注释放在同一行上的一个特定实例是JUnit中的@Test注释。这是相当短的,通常不会采用任何参数,并且最重要的是通常出现在人类读者潜意识地期望它仍然存在的环境中。当你在测试类中注释public void nullary方法时,我认为将注释滚动到同一行的额外简洁性更好(即更少分散注意力,可以在屏幕上看到更多代码)。将它放在一个单独的行上,

在一般情况下,您希望您的注释能够脱颖而出,因为它们通常与开发人员对未注释方法的期望有所不同。因此,例如,如果我在@Test注释上设置超时,我放在前一行,这样它就不会在样板中丢失。