我在很多地方看到android上下文被初始化了两次?为什么需要它?
例如:
Context context;
context = null;
他们会再次将它初始化为onCreate,onReceive或其他方法中的某些值
context = myContext;
如果我们必须将其初始化为值,为什么然后将其初始化为null?
Android的特定内容?
由于
答案 0 :(得分:2)
编译器永远不会为未初始化的局部变量分配默认值。 如果无法初始化声明它的局部变量,请确保分配它 尝试使用它之前的值。将导致访问未初始化的局部变量 在编译时错误。
示例:
someMethod(Context myContext){
Context context;
context = null; //Have to be done to avoid compile-time error
context = myContext;
}
示例2:
private Context context;
someMethod(Context myContext){
context = myContext; //No initialization required, because context variable is not local
}
回答你的问题:
我们正在将变量初始化为 null 以保持一致性
不,这不是针对Android的,而是针对特定于Java的
答案 1 :(得分:0)
我猜这只是旧习惯。默认情况下,Java应将字段对象引用设置为null
。我怀疑Android的处理方式不同。
将它们设置为null甚至可能导致字节代码级别的重复操作。有关详细信息,请参阅this页面。