101 votes

Objet non initialisé vs objet initialisé à NULL

Je travaille en Java.

Je configure couramment certains objets comme tels :

public class Foo {
    private SomeObject someName;

    // do stuff

    public void someMethod() {
        if (this.someName != null) {
            // do some stuff
        }
    }
}

La question est : est-ce que someName dans cet exemple équivaut à null En entrant, je peux reliably for all objects suppose que le contrôle de nullité des objets non initialisés sera précis ?

123voto

dasblinkenlight Points 264350

Correct, les membres statiques et les membres d'instance du type de référence qui ne sont pas explicitement initialisés sont définis comme suit null par Java. La même règle s'applique aux membres des tableaux.

De la Spécification du langage Java , section 4.12.5 :

Valeurs initiales des variables

Chaque variable dans un programme doit avoir une valeur avant d'être utilisée :

Chaque variable de classe, variable d'instance ou composant de tableau est initialisé avec une variable valeur par défaut lors de sa création

[...] Pour tous les types de référence, la valeur par défaut est null .

Notez que la règle ci-dessus exclut les variables locales : elles doivent être initialisées explicitement, sinon le programme ne compilera pas.

16voto

Jared Nielsen Points 910

Si un Object a été déclarée mais pas instanciée, sa valeur est la suivante null .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X