Java Language Piège des objets nuls auto-unboxing dans les primitifs


Exemple

public class Foobar {
    public static void main(String[] args) {

        // example: 
        Boolean ignore = null;
        if (ignore == false) {
            System.out.println("Do not ignore!");
        }
    }
}

Le piège est que null est comparé à false . Étant donné que nous comparons un boolean primitif à un Boolean , Java tente de déballer l' Object Boolean dans un équivalent primitif, prêt pour la comparaison. Cependant, puisque cette valeur est null , une NullPointerException est levée.

Java est incapable de comparer les types primitifs aux valeurs null , ce qui provoque une NullPointerException à l'exécution. Considérons le cas primitif de la condition false == null ; Cela générerait une erreur de compilation de incomparable types: int and <null> .