Qual è la differenza tra:Java, Qual è la differenza tra l'assegnazione nulla da obiettare e proprio dichiarazione
Object o = null
; eObject o;
(appena dichiarazione)
Qualcuno può rispondermi?
Qual è la differenza tra:Java, Qual è la differenza tra l'assegnazione nulla da obiettare e proprio dichiarazione
Object o = null
; eObject o;
(appena dichiarazione)Qualcuno può rispondermi?
Dipende dall'ambito in cui si dichiara la variabile. Ad esempio, variabili locali non hanno default values
nel qual caso si dovrà assegnare nullo manualmente, dove, come in caso di variabili istanza assegnando nulla è ridondante poiché variabili istanza ottengono valori predefiniti.
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
}
}
Come accennato, oggetto come riferimento instance variable
non è necessario assegnare null
quelle prendono null
come valore predefinito. Ma le variabili locali devono essere inizializzate altrimenti si otterrà l'errore di compilazione dicendo The local variable s may not have been initialized
.
Per ulteriori dettagli è possibile consultare this link