Prendere in considerazione lo snap al codice qui sotto. usiamo equals()
per confrontare oggetti che sono significativamente equivalenti o no? Qui entrambi i valori sono significativamente uguali ma perché longWrapper.equals(0)
restituisce false
? E quando ho confrontato entrambi i valori con l'operatore ==
, restituisce true
.Confrontare la classe wrapper con la primitiva usando equals() dà un comportamento strano
Long longWrapper = 0L;
long longPrimitive = 0;
System.out.println(longWrapper == 0L); // true
System.out.println(longWrapper == 0); //true
System.out.println(longWrapper == longPrimitive); //true
System.out.println(longWrapper.equals(0L)); //true
System.out.println(longWrapper.equals(0)); //false
System.out.println(longWrapper.equals(longPrimitive)); //true