我在很多地方看到android上下文被初始化了两次?为什么需要它?
例如 :
Context context;
context = null;
他们将再次将其初始化为 onCreate、onReceive 或其他方法中的某些值
context = myContext;
如果无论如何我们必须将其初始化为 value,为什么还要将其初始化为 null ?
有什么特定于 Android 的吗?
谢谢
我在很多地方看到android上下文被初始化了两次?为什么需要它?
例如 :
Context context;
context = null;
他们将再次将其初始化为 onCreate、onReceive 或其他方法中的某些值
context = myContext;
如果无论如何我们必须将其初始化为 value,为什么还要将其初始化为 null ?
有什么特定于 Android 的吗?
谢谢
编译器永远不会为未初始化的局部变量分配默认值。如果您无法在声明它的地方初始化局部变量,请确保在尝试使用它之前为其分配一个值。访问未初始化的局部变量将导致编译时错误。
例子:
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 特定的
我猜这只是旧习惯造成的。默认情况下,Java 应将字段对象引用设置为null
. 我怀疑Android会以不同的方式处理这个问题。
将它们设置为 null 甚至可能导致字节码级别的重复操作。有关详细信息,请参阅此页面。