Avatar ·

Qu'est-ce que null/nil en Java et comment travailler avec ?

Bonjour à tous ! J'apprends les bases de Java et je suis tombé sur le concept de null. Dans certains langages (par exemple, en SQL ou Go), j'ai l'habitude du terme nil. Est-ce que je comprends bien qu'en Java il n'y a pas de nil, mais seulement null ? Et si oui, qu'est-ce que c'est exactement — une référence vide ou une valeur spéciale ?

Le problème est survenu quand j'ai écrit un code simple avec une classe User et que j'ai essayé d'appeler une méthode sur un objet que je n'avais pas initialisé :

public class User {\n    String name;\n\n    void printName() {\n        System.out.println(name.length());\n    }\n\n    public static void main(String[] args) {\n        User user = null;\n        user.printName(); // Ici, une NullPointerException est levée\n    }\n}\n

Je m'attendais à ce que