Jaka jest różnica między:Java, Jaka jest różnica między przypisanie wartości null do obiektu i po prostu deklaracja
Object o = null
; iObject o;
(tylko deklaracja)
Czy ktoś proszę mi odpowiedzieć?
Jaka jest różnica między:Java, Jaka jest różnica między przypisanie wartości null do obiektu i po prostu deklaracja
Object o = null
; iObject o;
(tylko deklaracja)Czy ktoś proszę mi odpowiedzieć?
To zależy od zakresu, w którym zadeklarowano zmienną. Na przykład, zmienne lokalne nie mają default values
w takim przypadku trzeba będzie przypisać NULL ręcznie gdzie podobnie jak w przypadku instancji zmiennych przypisywania null jest zbędny, ponieważ zmienne instancji uzyskać wartości domyślne.
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
}
}
Jak wspomniano, odwołanie do obiektu jako instance variable
nie musi być przypisane null
jak wziąć null
jako wartości domyślnej. Ale lokalne zmienne muszą zostać zainicjalizowane, inaczej otrzymasz komunikat o kompilacji z informacją: The local variable s may not have been initialized
.
Aby uzyskać więcej informacji, możesz skierować this link