为什么 Java 引用默认不为空?
Why aren't Java references not null by default?
我在其他语言(C 和 C++)中看到过这个问题。但是我仍然不明白为什么 Java 也是这样。声明引用但不设置为 null 在什么情况下有用?
Thing ref;
if (someCondition)
ref = oneThing;
else
ref = anotherThing;
在上面的代码中将 'ref' 初始化为 null 没有任何好处,至少只要两个赋值都不会抛出异常。
未初始化不是“有用”,只是初始化没有意义
我希望它不是那样 - 我更喜欢局部变量的初始化像成员变量一样工作 - 但事实就是这样。
我认为这是出于效率原因。如果您不必初始化局部变量,分配几乎只是堆栈指针的调整。
我在其他语言(C 和 C++)中看到过这个问题。但是我仍然不明白为什么 Java 也是这样。声明引用但不设置为 null 在什么情况下有用?
Thing ref;
if (someCondition)
ref = oneThing;
else
ref = anotherThing;
在上面的代码中将 'ref' 初始化为 null 没有任何好处,至少只要两个赋值都不会抛出异常。
未初始化不是“有用”,只是初始化没有意义
我希望它不是那样 - 我更喜欢局部变量的初始化像成员变量一样工作 - 但事实就是这样。
我认为这是出于效率原因。如果您不必初始化局部变量,分配几乎只是堆栈指针的调整。