Java,将 null 分配给对象和仅声明有什么区别
2022-09-01 08:52:33
有什么区别:
-
Object o = null
;和 -
Object o;
(只是声明)
任何人都可以回答我吗?
有什么区别:
Object o = null
;和Object o;
(只是声明)任何人都可以回答我吗?
这取决于声明变量的作用域。例如,局部变量没有,在这种情况下,您将必须手动分配 null,在这种情况下,实例变量分配 null 是多余的,因为实例变量获得默认值。default values
public class Test {
Object propertyObj1;
Object propertyObj2 = null; // assigning null is redundant here as instance vars get default values
public void method() {
Object localVariableObj1;
localVariableObj1.getClass(); // illegal, a compiler error comes up as local vars don't get default values
Object localVariableObj2 = null;
localVariableObj2.getClass(); // no compiler error as localVariableObj2 has been set to null
propertyObj1.getClass(); // no compiler error
propertyObj2.getClass(); // no compiler error
}
}
如前所述,不需要分配对象引用,因为这些引用是默认值。但是局部变量必须初始化,否则您将收到编译错误,说.instance variable
null
null
The local variable s may not have been initialized
有关更多详细信息,请参阅此链接