Jeder kompetente Java-Programmierer weiß, dass Sie String.equals () verwenden müssen, um einen String zu vergleichen, anstatt == weil == auf Referenzgleichheit prüft.
Wenn ich mit Strings zu tun habe, überprüfe ich die meiste Zeit auf Wertgleichheit und nicht auf Referenzgleichheit. Es scheint mir, dass es intuitiver wäre, wenn die Sprache den Vergleich von Zeichenfolgenwerten nur mit == zulässt.
Zum Vergleich prüft der Operator == von C # die Wertgleichheit für die Zeichenfolge s. Und wenn Sie wirklich nach Referenzgleichheit suchen mussten, können Sie String.ReferenceEquals verwenden.
Ein weiterer wichtiger Punkt ist, dass Strings unveränderlich sind, sodass diese Funktion keinen Schaden anrichtet.
Gibt es einen bestimmten Grund, warum dies nicht in Java implementiert ist?
==
Operator ordnet nur zu, Equals
wenn der ==
Operator auf diese Weise implementiert wurde. Das Standardverhalten für ==
ist dasselbe wie ReferenceEquals
(tatsächlich ReferenceEquals
ist es definiert als die Objektversion von ==
)
==
sich Objektgleichheit undeq
Referenzgleichheit befinden ( ofps.oreilly.com/titles/9780596155957/… ).