-1

フィールドを初期化する方が良いのはどこですか? コンストラクター (var.1)または宣言(var.2)で?

変数。1

public class UtilWebLoading {
private int data;
private Context context;

public UtilWebLoading(Context context) {
    this.context = context;
    data = 100;
}
...
}

変数。2

public class UtilWebLoading {
private int data = 100;
private Context context;

public UtilWebLoading(Context context) {
    this.context = context;
}
...
}
4

2 に答える 2

13

varで。1 変数にある間に、コンテキストが開始されました。2ヌルになります!最初のものを使用します。

于 2012-07-09T13:14:54.927 に答える
4

個人的には、十分なコンテキストがあるときにフィールドを初期化することを好みます。たとえば、Listフィールドがある場合、通常は宣言時に初期化します (クラスでユーザーが選択した実装を渡す必要がある場合を除く) が、サイズを渡す必要がある配列がある場合は、待機する必要があります。コンストラクター呼び出し用。

したがって、あなたの場合、有効なメンバーが存在しないため、2 番目のスニペットには宣言時に初期化するのに十分なコンテキストがありません。UtilContext

于 2012-07-09T13:17:26.980 に答える