35

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

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

まず、private static final問題の順序はありますか?そうでない場合、標準的に受け入れられているシーケンスまたは規則はありますか?

第二に、filename私のアプリケーションでは修正されています。これはその価値を保存するのに最適でしたか?

4

7 に答える 7

51

私はEclipseでCheckstyleを使用しています。これにより、Java言語仕様(JLS)を引用して、宣言が指定した順序とは異なる順序である場合に警告が表示されます。例えば、

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

結果は

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

彼らは彼らが期待する順序をリストするこのページを持っていますが、そのページのリンクをたどってJLSに至るまで、提案された順序の主張を裏付けるものは何も見えません。

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

于 2010-05-14T07:26:21.683 に答える
23
  1. いいえ。しかし、それは私が通常使用しているシーケンスです。

  2. これは合理的な選択ですが、プロパティまたは別のファイル形式(XMLなど)のいずれかの構成ファイルを好む人もいます。そうすれば、再コンパイルせずにファイル名を変更できます。

于 2010-05-14T06:03:57.813 に答える
13

Javaでは、定数(static final値)にすべて大文字の名前を付けるのが一般的であるため、次のように記述します。

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

Javaプログラミング言語のコード規則も参照してください。(これらは、Javaプログラマーの大多数が使用するSunのコード規則です)。

于 2010-05-14T08:07:45.657 に答える
9

これらのキーワードの最も受け入れられている順序はですprivate static finalまた、 PSFパターンを 使用して、これらのキーワードの順序を覚えておくことができます。

P =>プライベート/パブリック/保護
S =>静的/抽象/...
F =>最終

于 2014-02-01T18:22:46.630 に答える
3
  1. 順序は重要ではありませんが、いつでも試してみることができます。テストする可能性は6つだけです。

  2. 可視性修飾子を最初に(パブリック/プライベート/保護)配置しているので、目で見て整列させることができますが、慣例はわかりません。

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

于 2010-05-14T06:07:45.600 に答える
3

参照: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の生成で上記に示した順序と一致する順序で表示されるのが通例です

于 2013-10-12T12:35:24.043 に答える
3

現在のリンクで上記の@Hoboによる良い答えを完了するには

8.1.1。クラス修飾子

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

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

[...]

2つ以上の(異なる)クラス修飾子がクラス宣言に表示される場合、必須ではありませんが、ClassModifierの本番環境で上記に示した順序と一致する順序で表示されるのが通例です。

于 2015-09-27T15:15:00.277 に答える