Devi essere a conoscenza della differenza tra Long
e long
-long
è il tipo primitivo, Long
è il tipo wrapper. (Un po 'come un valore in box in C#, ma fortemente digitato.) Qual è il tipo di ritorno di getId()
?
Semplicemente:
assertEqual(id1, id2);
dovrebbe andare bene se si sta facendo questo in un test. Altrimenti, si può usare:
if (id1.equals(ids2))
se sono sicuramente non nullo, o utilizzare Guava:
if (Objects.equal(id1, id2))
per gestire la nullità. (È possibile scrivere Objects.equal
da soli, naturalmente, ma si dovrebbe assolutamente entrare in possesso di Guava comunque, così si potrebbe anche utilizzare tale ...)
Vale la pena notare che alcuni oggetti wrapper vengono riutilizzati - così per esempio :
// This will work
Long x = 5L;
Long y = 5L;
assertTrue(x == y); // Reference comparison
// This *probably* won't but it could!
x = 10000L;
y = 10000L; assertTrue (x == y); // confronto di riferimento
fonte
2012-03-13 19:50:58
In realtà questa domanda è fonte di confusione perché non si tratta di un confronto, ma di un test per l'uguaglianza. Vedi http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html#compareTo(T) –