Wie Vergleiche ich strings in Java?

Habe ich mit der == Betreiber in meinem Programm zu vergleichen, alle meine Saiten so weit.
Aber ich lief in einen Fehler, veränderte Sie in .equals() statt, und es der Fehler behoben.

Ist == schlecht? Wenn sollte es und sollte es nicht verwendet werden? Was ist der Unterschied?

Auch seine gut zu wissen, dass, wenn Sie overridding .equals () - Methode, stellen Sie sicher, dass Sie overridding .hashcode () - Methode, sonst werden Sie am Ende mit gegen aquivalenzrelation b/w equals und hashcode. Für mehr info siehe java-doc.
Verlassen Sie einen link zu meiner Erklärung, warum == so wie es ist funktioniert auf Objekte: stackoverflow.com/a/19966154/2284641
== funktioniert etwas von der Zeit, als java einen String-pool, wo er versucht, die Wiederverwendung von Speicher-Referenzen von Häufig verwendeten strings. Aber == vergleicht, dass Objekte, die gleich sind, nicht die Werte... also .equals() ist die ordnungsgemäße Nutzung, die Sie verwenden möchten.
Nie mit == testen, ob die Strings sind die gleichen, es sei denn, Sie genießen das aufspüren von subtilen Fehlern und das Studium der Feinheiten des Java-String-Praktikum-Prozess. "12"=="1"+2 ist falsch (wahrscheinlich)

InformationsquelleAutor |

Schreibe einen Kommentar