次の2つの構文順序は、Java内で有効です。なぜ両方が許可され、優先される構文順序があるのですか?
private final static String consultantType = "consultantType";
private static final String consultantId = "consultantId";
Java言語仕様のセクション8.3.1には、次のように記載されています。
2つ以上の(別個の)フィールド修飾子がフィールド宣言に表示される場合、必須ではありませんが、FieldModifierの生成で上記に示されている順序と一致する順序で表示されるのが通例です。
の制作FieldModifier
は次のとおりです。
FieldModifier:の1つ アノテーションパブリックプロテクトプライベート 静的最終過渡揮発性
private static final
したがって、あなたの場合、どのような順序でも有効ですが、を使用するのが通例です。
順序を制限することに価値がないため、任意の順序が許可されます。それでは、なぜプログラマーに偽の順序を覚えておくという負担をわざわざ課すのでしょうか。
どの順序を使用しても、まったく違いはありません。好みのものを選び、それを一貫して使用し、より興味深い問題に進みます。
その価値については、「プライベートスタティックファイナル」の方がおそらく一般的だと思います。
どの注文も有効です。したがって、Checkstyleは、次の順序以外の修飾子に遭遇すると、警告のラベルが付けられます。チェックを参照してModifierOrder
ください。
public
protected
private
abstract
static
final
transient
volatile
synchronized
native
strictfp