未初始化的对象vs对象初始化为NULL
我正在使用Java。
我通常设置一些对象如下:
public class Foo { private SomeObject someName; // do stuff public void someMethod() { if (this.someName != null) { // do some stuff } } }
问题是:在这个例子中的someName
等于null
,因为我可以reliably for all objects
假设空检查未初始化的对象将是准确的?
正确的,未明确初始化的引用types的静态和实例成员都被Java设置为null
。 同样的规则适用于arrays成员。
从Java语言规范的第4.12.5节:
variables的初始值
程序中的每个variables在使用其值之前都必须有一个值:
每个类variables,实例variables或数组组件在创build时均使用默认值进行初始化
对于所有的引用types,默认值为
null
。
请注意,上述规则排除了局部variables:它们必须被显式初始化,否则程序将不能编译。
如果已经声明了Object
引用但未实例化,则其值为null
。