3

以下两种语法顺序在 Java 中有效。为什么两者都被允许并且有首选的语法顺序?

  private final static String consultantType = "consultantType";
  private static final String consultantId = "consultantId";
4

3 回答 3

8

Java 语言规范第 8.3.1 节指出:

如果两个或多个(不同的)字段修饰符出现在字段声明中,尽管不是必需的,但习惯上它们的出现顺序与上面在 FieldModifier 的产生式中显示的顺序一致。

的产生FieldModifier是:

FieldModifier:其中之一
    注释公共保护私有
    静态最终瞬态易失

因此,在您的情况下,习惯上使用private static final,尽管任何订单都是有效的。

于 2012-11-07T22:27:15.403 回答
4

任何顺序都是允许的,因为限制顺序没有任何价值,那么为什么还要把记住虚假顺序的负担强加给程序员呢?

无论您使用哪种顺序,这绝对没有区别。选择你喜欢的那个,坚持使用它,然后继续解决一个更有趣的问题。

对于它的价值,我认为“私有静态最终”可能更常见。

于 2012-11-07T22:27:12.040 回答
0

任何订单都是有效的。因此,Checkstyle在遇到以下顺序之外的修饰符时会标有警告。见ModifierOrder支票。

  1. public
  2. protected
  3. private
  4. abstract
  5. static
  6. final
  7. transient
  8. volatile
  9. synchronized
  10. native
  11. strictfp
于 2012-11-07T22:41:05.427 回答