web-dev-qa-db-ja.com

Javaの修飾子キーワード順

メソッドをJavaにpublic void、別の方法で書くたびに。時々 "static public void" 時々 "public static void "など。

これらのキーワードの最適な順序(ベストプラクティス)は何ですか?

[abstract/static] [final] [synchronized] [public/private/protected] [result_type] ???

47
user1227115

理論的には、public static finalまたはfinal static publicのどちらを言うかは関係ありませんが、通常の規則に従うと、他の人はコードをより簡単に読むことができます。優先順序は次のとおりです。

[公開|保護されています|民間 ]

静的

概要

同期された

[一時的|揮発性]

最後の

ネイティブ

strictfp

[int |長い|ストリング|クラス|列挙型|インターフェースなど。]

58

Checkstyle (Java言語仕様セクション、 8.1.18.3.1 の提案を実装します、および 8.4. )の場合:

  1. 公衆
  2. 保護された
  3. 民間
  4. 概要
  5. default
  6. 静的
  7. 最後の
  8. 一過性
  9. 揮発性
  10. 同期された
  11. ネイティブ
  12. strictfp
40
Drew Stephens

修飾子のカスタム使用順序は Java言語仕様 に記載されています(したがって、独自の意見を持つ必要はありません;-))。 メソッド修飾子 の場合、次の定義が見つかります(抽出):

MethodModifiers:
    MethodModifier
    MethodModifiers MethodModifier

MethodModifier: one of
    Annotation public protected private abstract
    static final synchronized native strictfp

メソッド宣言に2つ以上の(個別の)メソッド修飾子が現れる場合、必須ではありませんが、MethodModifierのプロダクションで上記に示した順序と一致する順序で現れることは慣例です。

この文は、修飾子の使用が指定されている他のいくつかの場所で見つかります。 here フィールド修飾子の場合。

(これは主に私の別の答えからコピーされます here )。

4
FrVaBe

「最良」は、6.2(メソッド宣言)に記載されている Javaコーディングスタイルガイド に従うことです。

public static final synchronized long methodName()
    throws ArithmeticException, InterruptedException {
    static int count;
}
3
ewernli

最適な順序は、残りのコードが使用する順序です。

2
Matt Ball

このような:

public static final synchronized void calculate()

1
Petar Minchev

これは私の個人的な選択です

public static final void method() { }
public void method() { }
public abstract void method() { }

これは、Java documentation

0
kabal

はい、標準的な注文があります。

IDEを使用する場合は、Eclipseの設定-> Java-> Editor-> Save Actions]チェックボックス[ソースのフォーマット]コード"

そうすれば、もう心配する必要はありません。ファイルが保存されるたびに自動的に行われ、プロジェクト全体がこれを使用する場合は、プロジェクト全体で同じ方法でフォーマットされたコードが使用されます。

0
Alan Escreet