0
private static final Logger LOGGER = Logger.getLogger(AbstractDbClient.class);

protected Connection connection;


protected Connection connection;

private static final Logger LOGGER = Logger.getLogger(AbstractDbClient.class);

フィールド宣言の順序はどれが良いですか? 一部の本は、プライベート/パブリック/保護/などで順序付けする必要があると指摘しました。これに基づいている場合、2番目のコードの方が優れていますが、見栄えが悪いようです。static final var または static var を含める場合は? 注文ルールは?

4

4 に答える 4

6

一貫性を保つことをお勧めしますが、コードを理解しやすくデバッグしやすいように、設定されている順にフィールドを配置することをお勧めします。私見では。

 static final fields

 final fields

 mutable fields.
于 2012-08-03T08:20:34.650 に答える
4

一般的な標準は、すべての public 変数を一番上に配置し、次に protected、private の順に配置することです。クラス/静的変数をインスタンス変数の前に置く人もいれば、後に置く人もいます。

新しいコードを書いているチームで作業している場合は、集まって共通の規則を決定するのが最善です。追加する既存のコードが既にある場合は、それを調べて、以前の作成者がどのような規則に従っていたかを理解してください。同じコードベースにスタイルを混在させたくありません。

于 2012-08-03T08:20:05.060 に答える
2

データ レイアウトには、快適に感じるようにフィールドを並べ替える以外に、実際にはパフォーマンス プロパティがあります。私は次のようなものに従う傾向があります:

  • 静的最終フィールド、
  • 静的フィールド
  • 最終フィールド
  • 変更可能なフィールド
  • ユースケースごとにグループ化された揮発性フィールド

そして時折

private field usedOnlyInFoo
method foo(){
}

データ レイアウトが重要な理由について詳しく説明します配列/ダイレクト バッファ以外に Java でデータ レイアウトを強制する正式な方法はありませんが、通常、コンパイラ (JVM) はフィールドを宣言順に配置します。

于 2012-08-03T08:39:58.300 に答える
1

個人的には、クラスの先頭にあるすべてのスタティックが好きで、すべてのフィールドが public、protected、default、private の順序になっています。

例えば

public static final Integer a;
private static final Integer b;

public Integer c;
Integer d
private Integer d;

また、静的フィールドと非静的フィールドの間に線を追加する傾向があります。

しかし、それは意見の問題です。一緒に働いている仲間に聞いてみてはいかがでしょうか。この種のことについては一貫しているほうがよいでしょう。

于 2012-08-03T08:26:04.013 に答える