在Java中声明限定符的正确方法是什么?

5

可能是重复问题:
Java修饰符语法和格式

private static final还是private final static。我知道它们都可以工作,但想知道规范声明的顺序。


考虑到两种方式都行,规范可能对任一方案都表示认可。 - Thilo
6个回答

13

访问修饰符的顺序无关紧要,只需要存在即可。

对于方法修饰符,Java语言规范指出,通常而言(但不是必需的),它们出现的顺序应该与MethodModifier中所示的顺序一致:

(Annotation) public protected private abstract static final synchronized native strictfp

补充说明

字段修饰符的推荐顺序(截至JLS 8.3.1):

(Annotation) public protected private static final transient volatile

推荐的类修饰符顺序(截至JLS 8.1.1):

(Annotation) public protected private abstract static final strictfp

(Annotation)并不是修饰语,而是表示任何注解的占位符。应该在任何其他修饰语之前放置注解。


2
"Lava"语言!我迫不及待地想要它发布 :) - Bohemian
1
在应用链接引用时,看到并修复了它 - 想不出为什么我会打 l 而不是 J ;) (也许因为 Java 很 :D ) - Andreas Dolk
+1:在我看来,使用一致的顺序可以使阅读更容易。 - Peter Lawrey

1

没有区别,只是风格不同。

我更喜欢 private static final


1

这个案例中的规范是JLS第8.3节第8.3.1节

FieldDeclaration:
    FieldModifiersopt Type VariableDeclarators ;

FieldModifiers:
    FieldModifier
    FieldModifiers FieldModifier

FieldModifier其中之一
    Annotation public protected private
    static final transient volatile

正如您所看到的,字段修饰符的顺序可以任意排列。您甚至可以在其中的任何位置混合注释。


你说得对,看起来他是想到了字段。 - Andreas Dolk

1
我最常见的顺序是 static final 而不是 final static。 如果它不是你的代码约定的一部分,那么这是个人偏好。但我建议总是写 static final,除非你被迫以另一种方式编写它。

0

我不确定规范在这个问题上有什么(如果有的话),但两种方法都可以编译。 因此,这取决于编码人员的偏好!


不一定。有很多编码风格可以编译,但与Sun/Oracle Java编码规范相矛盾。 - Péter Török

0

我在规范中找不到任何提到偏好的说明。


1
我明白了。请查看我的帖子,其中有一个链接。 - Andreas Dolk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接