初始化字段哪个更好?在构造函数(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;
}
...
}
答案 0 :(得分:13)
变种1上下文已经启动,而在var中。 2它将为空! 使用第一个。
答案 1 :(得分:4)
我个人更喜欢在足够的上下文时初始化字段。例如,如果我有一个List
字段,我通常在声明时初始化它(除非该类要求用户传递他们选择的实现),但如果我有一个需要传递大小的数组,我我被迫等待构造函数调用。
因此,在您的情况下,第二个代码段没有足够的上下文来在声明时初始化Util
,因为不存在有效的Context
成员。