java - 未初始化的对象与初始化为 NULL 的对象

标签 java null initialization

我正在使用 Java。

我通常这样设置一些对象:

public class Foo {
    private SomeObject someName;

    // do stuff

    public void someMethod() {
        if (this.someName != null) {
            // do some stuff
        }
    }
}

问题是:这个例子中的 someName 是否等同于 null,因为我可以 可靠地为所有对象 假设 null 检查未初始化的对象会准确吗?

最佳答案

正确,未显式初始化的引用类型的静态成员和实例成员都被 Java 设置为 null。同样的规则也适用于数组成员。

来自Java Language Specification ,第 4.12.5 节:

Initial Values of Variables

Every variable in a program must have a value before its value is used:

Each class variable, instance variable, or array component is initialized with a default value when it is created

[...] For all reference types, the default value is null.

注意,以上规则不包括局部变量:它们必须显式初始化,否则程序将无法编译。

关于java - 未初始化的对象与初始化为 NULL 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16699593/

相关文章:

方法中的java可选参数

c - 使用指向该变量的指针初始化变量

java - 实例初始化 block 和子类

c - 如何使用最少数量的赋值运算符构建 OneTwoThree 链表?

java - 使用 Integer foo(String s) 将 List<String> 转换为 List<Integer>

java - 本地主机 Spring Boot 中的错误 404

java - 对 ArrayList 进行冒泡排序时遇到问题

java - 如何对扩展/继承第 3 方类的类进行单元测试

MySQL合并一些空值,而不是全部空值

cursor.sort() 中 undefined 与 null 的 MongoDB 语义