Sna*_*Doc 84 java null initialization
我在Java工作.
我通常会设置一些对象:
public class Foo {
private SomeObject someName;
// do stuff
public void someMethod() {
if (this.someName != null) {
// do some stuff
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是:someName在这个例子中等于null,as-in我可以reliably for all objects假设null检查未初始化的对象是否准确?
das*_*ght 107
正确,未显式初始化的引用类型的静态和实例成员null都由Java 设置.同样的规则适用于数组成员.
从Java语言规范,第4.12.5节:
变量的初始值
程序中的每个变量在使用其值之前必须具有值:
每个类变量,实例变量或数组组件在创建时都使用默认值进行初始化
[...]对于所有引用类型,默认值为
null.
请注意,上述规则排除了局部变量:必须显式初始化它们,否则程序将无法编译.
Jar*_*sen 13
如果Object已声明引用但未实例化,则其值为null.