私はフィールドを宣言しています:
private static final String filename = "filename.txt";
まず、private static final
問題の順序はありますか?そうでない場合、標準的に受け入れられているシーケンスまたは規則はありますか?
第二に、filename
私のアプリケーションでは修正されています。これはその価値を保存するのに最適でしたか?
私はEclipseでCheckstyleを使用しています。これにより、Java言語仕様(JLS)を引用して、宣言が指定した順序とは異なる順序である場合に警告が表示されます。例えば、
private final static String filename = "filename.txt";
結果は
'static' modifier out of order with the JLS suggestions.
彼らは彼らが期待する順序をリストするこのページを持っていますが、そのページのリンクをたどってJLSに至るまで、提案された順序の主張を裏付けるものは何も見えません。
そうは言っても、彼らが提案する順序は、私が見たほとんどのコードの順序に対応しているように思われるので、採用するのと同じくらい良い慣習のようです。
いいえ。しかし、それは私が通常使用しているシーケンスです。
これは合理的な選択ですが、プロパティまたは別のファイル形式(XMLなど)のいずれかの構成ファイルを好む人もいます。そうすれば、再コンパイルせずにファイル名を変更できます。
Javaでは、定数(static final
値)にすべて大文字の名前を付けるのが一般的であるため、次のように記述します。
private static final String FILENAME = "filename.txt";
Javaプログラミング言語のコード規則も参照してください。(これらは、Javaプログラマーの大多数が使用するSunのコード規則です)。
これらのキーワードの最も受け入れられている順序はですprivate static final
。また、 PSFパターンを 使用して、これらのキーワードの順序を覚えておくことができます。
P =>プライベート/パブリック/保護
S =>静的/抽象/...
F =>最終
順序は重要ではありませんが、いつでも試してみることができます。テストする可能性は6つだけです。
可視性修飾子を最初に(パブリック/プライベート/保護)配置しているので、目で見て整列させることができますが、慣例はわかりません。
それが修正されればそれを行うことができますが、私は常に何かが後で(たとえばテスト中に)それを渡したいことを発見するためだけに定数であると思います。コマンドラインまたはプロパティファイルの引数はその場合に機能します、および設定するための最小限の労力です。
参照:http ://docs.oracle.com/javase/specs/jls/se5.0/html/classes.html#8.3.1
8.3.1フィールド修飾子
FieldModifiers:
FieldModifier
FieldModifiers FieldModifier
FieldModifier:
アノテーションパブリックプロテクトプライベート
スタティックファイナルトランジェント揮発性の1つ
..。
2つ以上の(別個の)フィールド修飾子がフィールド宣言に表示される場合、必須ではありませんが、FieldModifierの生成で上記に示した順序と一致する順序で表示されるのが通例です。
現在のリンクで上記の@Hoboによる良い答えを完了するには
8.1.1。クラス修飾子
クラス宣言には、クラス修飾子を含めることができます。
ClassModifier: (one of) Annotation public protected private abstract static final strictfp
[...]
2つ以上の(異なる)クラス修飾子がクラス宣言に表示される場合、必須ではありませんが、ClassModifierの本番環境で上記に示した順序と一致する順序で表示されるのが通例です。