2.1.14 Erläutern Sie, warum auch der
nachfolgende Quelltext nicht geeignet ist, um in LongWrapperApp
(siehe 2.1.12) die Werte von longVar und longObj miteinander zu
vergleichen:
Long longObj2 = new Long(longVar);
if (longObj
== longObj2) { ... }
Der Programmcode erzeugt zwar keinen
Compilerfehler, aber die if-Abfrage liefert immer ein false
zurück. Warum ist das so ?
Hier werden zwei Objekte der Klasse Long miteinander
verglichen. Die Objekte haben zwar die gleichen Werte, es sind jedoch
immer noch zwei verschiedene, eigenständige Instanzen. Man sagt
auch Die Objektidentität der beiden Instanzen ist
unterschiedlich. Deshalb liefert der Vergleich der beiden
Objekte unabhängig vom dahinter steckenden long-Wert
immer false.