a.equalsIgnoreCase(b) ist a == b ?

  • Themenstarter Themenstarter _________
  • Beginndatum Beginndatum
?

_________

Gast
Hallo liebe Java-Freunde,

ich wundere mich gerade über die Implementierung der equalsIgnoreCase-Methode. Warum funktioniert der folgende Code?
Java:
public boolean equalsIgnoreCase(String aString){
    return this == aString;
}
Ich dachte bislang, mit dem einfachen == wird überprüft, ob die Objekte identisch sind, also an der gleichen Speicherstelle stehen. Wie können denn zwei möglicherweise verschiedene Strings ("aA", "aa" sind verschieden, equalsIgnoreCase liefert aber true zurück) an der gleichen Speicherstelle stehen?

Ich bin jetzt etwas verwundert 😉

Liebe Grüße
 
Okay, hat sich erledigt, sorry. Ist wohl zu spät 🙂

Der Code stammt, wie ich gerade gesehen habe, von JD-gui. Im "richtigen" Source steht eine verständliche Implementierung. Bitte korrigiert mich, wenn der JD-Code trotzdem irgendeinen Sinn ergibt.
 
Wie kommst du an den Codefetzen?
Die Methode equalsIgnoreCase schaut in der Java7 API so aus:
Java:
public boolean equalsIgnoreCase(String anotherString) {
  return (this == anotherString) ? true :
    (anotherString != null) && (anotherString.count == count) &&
    regionMatches(true, 0, anotherString, 0, count);
}
 
wo bitte hast du diesen code her ?

java.lang.String.equalsIgnoreCase(String) ist so implementiert
Java:
public boolean equalsIgnoreCase(String anotherString) {
        return (this == anotherString) ? true
                : (anotherString != null)
                && (anotherString.value.length == value.length)
                && regionMatches(true, 0, anotherString, 0, value.length);
    }
 

Neue Themen


Zurück
Oben