我在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检查未初始化的对象是否准确?
有什么区别:
Object o = null; 和Object o; (只是声明)有人可以回答我吗?
我有这个代码:
MyClass object;
.... some code here where object may or may not be initialised...
if (object.getId > 0) {
....
}
Run Code Online (Sandbox Code Playgroud)
这导致编译错误:object可能尚未初始化,这是公平的.
现在我将我的代码更改为:
MyClass object;
.... some conditional code here where object may or may not be initialised...
if (object != null && object.getId > 0) {
....
}
Run Code Online (Sandbox Code Playgroud)
我得到相同的编译错误!我必须初始化object为null:
MyClass object = null;
Run Code Online (Sandbox Code Playgroud)
那么,不初始化对象和初始化为null之间的区别是什么?如果我声明一个没有初始化的对象,那么它不是null吗?
谢谢