【发布时间】:2018-06-12 03:19:04
【问题描述】:
我有两个关于 Java 的问题:
-
我知道未初始化的对象会自动分配
null,但这段代码不起作用 -A a; //A is some valid user-defined object System.out.println(a != null);这会产生错误:
error: variable a might not have been initialized.
这表明a不为空。那么,我如何区分null和这些变量呢? -
我知道构造函数没有返回任何值,即使
void和return返回void,那么下面的代码如何才能完美运行?A() { //...Some code return; //Works perfectly even if it returns void from inside construtor }
【问题讨论】:
-
历史:在 C/C++ 中,所有变量都将被统一化。使用 java,所有 fields 都会自动归零以简化对象创建。但是对于局部变量,没有自动默认值,因为这会导致意外零/被遗忘情况的错误:
int a; if (...) { a = 42; } else { ... }
标签: java constructor null initialization return