0

注意してください: クラス レベルの変数を定義するときに、リストまたはマップの場所をいくつか読みました。これらは常に new 演算子で初期化する必要があります。例 -- private List students = new ArrayList(); しかし、アーキテクトはそれに反対しており、クラス レベルで変数を初期化する際に 10 個のバケットを消費すると言っています。しかし、私はそれに非常に反対しています。それを使用する前に、学生リストを null としてチェックすることです。

ベストプラクティスを教えてください。クラスレベルで配列リストを初期化する必要がありますか。

ご意見をお聞かせください。Java コーディングの実践に関するより良い参照 URL または書籍名があれば、私に提供してください。

4

1 に答える 1

1

あなたの質問には、最終的な判断を下すのに十分な情報が含まれていません。

プログラム全体に数え切れないほどのリスト変数とマップ変数があるが、特定の実行ごとにそれらのいくつかしか使用しないようなものである場合、遅延初期化のケースがあります。ただし、これは実際には非常にまれです。

個人的には、private finalコンテナー型のオブジェクト (リスト、マップ、セット) を保持する変数を常に好みます。明確なコード、バグなし、冗長チェックが少ない (ご指摘のとおり)、スレッドセーフ (少なくとも公開に関する限り)。

遅延初期化には多くの落とし穴があり、それに対する適切な議論が不足しているため、通常、積極的な初期化が推奨されるベスト プラクティスです。

于 2013-08-23T12:23:24.867 に答える