Java,将null赋给object和声明之间的区别是什么

김준호*_*김준호 25 java null declaration

有什么区别:

  • Object o = null; 和
  • Object o; (只是声明)

有人可以回答我吗?

Per*_*ror 39

它取决于声明变量的范围.例如, 局部变量没有default values在这种情况下你必须手动分配null,在实例变量的情况下,分配null是多余的,因为实例变量获得默认值.

public class Test {
    Object propertyObj1;
    Object propertyObj2 = null; // assigning null is redundant here as instance vars get default values 

    public void method() {
        Object localVariableObj1;
        Object localVariableObj1.getClass(); // illegal, a compiler error comes up as local vars don't get default values

        Object localVariableObj2 = null;
        Object localVariableObj2.getClass(); // no compiler error as localVariableObj2 has been set to null

        propertyObj1.getClass(); // no compiler error
        propertyObj2.getClass(); // no compiler error
    }
}
Run Code Online (Sandbox Code Playgroud)