web-dev-qa-db-ja.com

クイックJavaフィールドのプライベート静的最終キーワードに関する質問

フィールドを宣言しています:

private static final String filename = "filename.txt";

最初に、private static final 案件?そうでない場合、標準的に受け入れられているシーケンスまたは規則はありますか?

次に、アプリケーションのfilenameが修正されました。これはその値を保存するのが最善でしたか?

32
Spencer

私はEclipseで Checkstyle を使用しています。宣言が指定した順序と異なる場合、Java言語仕様(JLS )。 例えば、

private final static String filename = "filename.txt";

結果は

'static' modifier out of order with the JLS suggestions.

彼らは this page を持っています。これは期待する順番を示していますが、そのページのリンクから [〜#〜] jls [〜#〜] できません提案された注文のアサーションをバックアップするものを参照してください。

そうは言っても、彼らが提案する順序は、私が見たほとんどのコードの順序に対応しているようです。そのため、採用する慣習はどれも同じように良いようです。

49
Hobo
  1. いいえ。しかし、これは私が通常使用するシーケンスです。

  2. これは妥当な選択ですが、一部の構成ファイルは Properties または別のファイル形式(XMLなど)です。これにより、再コンパイルせずにファイル名を変更できます。

23

Javaでは定数(static final値)すべて大文字の名前なので、次のように記述します。

private static final String FILENAME = "filename.txt";

Javaプログラミング言語)のコード規約も参照 (これらは、Javaプログラマが使用するSunのコード規約です)。

14
Jesper

これらのキーワードの最も受け入れられる順序はprivate static final。また、次のような[〜#〜] psf [〜#〜]パターンを使用して、これらのキーワードの順序を覚えることができます。

[〜#〜] p [〜#〜] =>プライベート/パブリック/保護
[〜#〜] s [〜#〜] => static/abstract/...
[〜#〜] f [〜#〜] =>最終

5
frogatto
  1. 順序は重要ではありませんが、いつでも試すことができます。テストする可能性は6つだけです。

  2. 私は可視性修飾子を最初に(パブリック/プライベート/保護)配置しているので、慣例については知りません。

  3. それが修正されていればそれを行うことができますが、私は常に何かが定数であり、後で(たとえば、テスト中に)それを渡したいということを発見するだけだと思います。その場合、コマンドラインの引数またはプロパティファイルが機能します。 、およびセットアップするための最小限の労力です。

3
Phil

参照: http://docs.Oracle.com/javase/specs/jls/se5.0/html/classes.html#8.3.1

8.3.1フィールド修飾子

FieldModifiers:
FieldModifier
FieldModifiers FieldModifier

FieldModifier:次のいずれか
Annotation public protected private
静的な最終的な一時的な揮発性

...

2つ以上の(異なる)フィールド修飾子がフィールド宣言に含まれている場合、必須ではありませんが、customaryは、それらと一貫した順序で表示されます上記のFieldModifierのプロダクションで示しています。

3
fishautumn

良い答えを完成させるには 上記の@Hoboによって現在のリンク によって

8.1.1。クラス修飾子

クラス宣言には、クラス修飾子を含めることができます。

     ClassModifier:
         (one of) 
         Annotation public protected private 
         abstract static final strictfp

[...]

2つ以上の(個別の)クラス修飾子がクラス宣言に含まれる場合、必須ではありませんが、ClassModifierのプロダクションで上記に示した順序と一致する順序で表示されるのが通例です。

3
serv-inc