Ich bin gerade beim Debugging einiger fantastischer Phänomene, da fiel mir doch just folgende hilfreiche Diskussion auf TheServerSide in die Hände.

Wer 10min Zeit hat und ein wenig über Inkonsistenz in Java lesen möchte, mag sich http://www.theserverside.com/news/thread.tss?thread_id=27129 mal näher angucken.

Als Ausweg aus der Misere würde ich das konsequente Autoboxing von "==" in "equals" vorschlagen. Zur Prüfung von Referenzgleichheit könnte man stattdessen einen neuen Operator (z.B. den aus PHP: "===") einführen. Bleibt noch zu klären, ob "null == null" dann eine NPE schmeißen soll oder wahr ist [img]http://www.fb18.de/gfx/22.gif[/img]

Und bevor mir jemand mit "nutz doch die richtigen Methoden" kommt… Ich bin mir durchaus bewusst, dass solcherlei Probleme dadurch vermieden werden könnten. Allerdings haben Operatoren wie "==" gegenüber Methoden den Vorteil, dass sie oft die Lesbarkeit des Codes erhöhen. Überladen von Operatoren wie in C++ steht hier nicht zur Debatte (und hat in guten Sprachen IMHO auch nichts zu suchen, da diese Shortcuts für Methoden in der Regel semantisch nicht eindeutig verwendet werden können, sondern nur der Bequemlichkeit des Programmierers dienen).