初始化字段哪个更好?

时间:2012-07-09 13:13:32

标签: java android

初始化字段哪个更好?在构造函数(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;
}
...
}

2 个答案:

答案 0 :(得分:13)

变种1上下文已经启动,而在var中。 2它将为空! 使用第一个。

答案 1 :(得分:4)

我个人更喜欢在足够的上下文时初始化字段。例如,如果我有一个List字段,我通常在声明时初始化它(除非该类要求用户传递他们选择的实现),但如果我有一个需要传递大小的数组,我我被迫等待构造函数调用。

因此,在您的情况下,第二个代码段没有足够的上下文来在声明时初始化Util,因为不存在有效的Context成员。