Sonntag, 28. Juni 2009

Java und Strings vergleichen :/

Ich hatte Gestern den Spaß bei einem einfachen String Vergleich als Ergebnis immer ein false bekommen.
Leider ist mir das Problem erst durch googlen bekannt geworden.
Anders als in .Net wird in Java mit dem == Operator nicht der Wert des Strings sondern die Referenz verglichen.
Das bedeutet, dass er prüft ob die Adresse im RAM bei beiden Strings gleich ist.
Dies ist natürlich in Java sehr ungeschickt gelöst worden.
Für einen richtigen Vergleich muss man in Java immer die Methode equals des Objekts aufrufen.

Dies ist natürlich sehr lästig, da ein einfacher Vergleich mit dem == Operator doch eleganter gelöst wäre.
Mal schauen ob man das Problem beheben wird oder man sich mit equals bis zum jüngsten Tag arbeiten muss.

Keine Kommentare: