コンストラクタ内またはフィールドが宣言されているポイントでJavaフィールドを初期化する方がよいですか?たとえば:フィールドをインラインまたはコンストラクタ内で初期化する
public class Foo {
private final List<String> l;
public Foo() {
this.l = new LinkedList<String>();
}
}
...または
public class Foo {
private final List<String> l = new LinkedList<String>();
}
私は通常、それが明確に見えたとして、元好まれてきました。しかしながら、後者は明らかによりコンパクトなコードをもたらす。
[ベストプラクティス:コンストラクタまたは宣言でクラスフィールドを初期化するかどうかの可能な複製?](http://stackoverflow.com/questions/24551/best-practice-initialize-class-fields-in-constructor-or-at) -declaration) –
前者はあなたのオブジェクトが作成されたときにのみリストが初期化されるため、私にはうってつけです。 – sgowd
だから、後者の場合もそうです。 – aioobe