[JAVA] Jetzt im dritten Jahr ist das Missverständnis, das ich bemerkt habe, der Unterschied zwischen der Gleichheitsmethode und ==

** Ich habe es falsch verstanden. </ font> **

Von nun an vor ungefähr 3 Jahren ...

Als ich an einem Entwicklungsprojekt bei JAVA mit leerem Wissen teilnahm, dass ich nicht einmal die sprachlichen Charaktere kannte ...

Während des Studiums mit JAVAs Lehrbuch Secoseco, Codierung in Entwicklungsprojekten ...

Pull-Anfrage ... nicht gut ... Lehrbuch ... Korrektur ... Pull-Anfrage ... nicht gut ... Korrektur ... google ... nicht gut ...

Ich habe in einem solchen Zustand gearbeitet.

Zu dieser Zeit ein Wort von meinem Senior ...

Es ist wahrscheinlich die ganze Zeit in meinem Kopf geblieben.

** Verwenden Sie die Methode equals, um Strings zu vergleichen. </ font> **

Ein Wort von meinem Senior ist richtig.

Japanisch ist jedoch schwierig ...

Mit ein wenig Nachdenken scheint es gut oder schlecht zu sein.

Unerwartet erinnerte ich mich so ...

** "Verwenden Sie die equals-Methode zum Vergleichen von Strings." == "Verwenden Sie die equals-Methode nur beim Vergleichen von Strings." </ Font> **

Einige Monate später studierte ich für die Oracle-zertifizierte JAVA-Prüfung und erhielt eine Qualifikation.

Trotzdem wurden die alten Erinnerungen nicht umgeschrieben.

Im JAVA-Qualifikationsreferenzbuch schrieb ich in einem Memo, dass "die Wrapper-Klasse eine gleichwertige Methode ist", und bemerkte, dass ich während des Studiums ein Missverständnis hatte.

Dennoch ...

Dann fragte ich mich, warum es in Ordnung war, missverstanden zu bleiben.

Was mir dort auffiel, war, dass es in früheren Projekten äußerst wenige Möglichkeiten gab, "numerische Werte zu berechnen".

Dieses Mal bemerkte ich dieses Missverständnis, als ich bei der Systementwicklung half, um einen bestimmten Punkt zu verwalten.

Dort wurde int in Integer geändert, Integer in int und es gab einen Boxsturm.

Die Zahlen sind also extrem hoch.

Dort habe ich es bemerkt.

** "Da es sich um einen String handelt, handelt es sich nicht um eine gleichwertige Methode!" </ Font> **

Wann··

Der Grund, warum dieser Fehler jetzt klar in meinen Kopf eingraviert wurde, ist wahrscheinlich, dass ich UT schon oft erlebt habe.

-Wenn sich die Instanz ändert, stimmen die Inhalte beim Vergleich der Objekte nicht überein, auch wenn sie denselben Wert haben.

Ich erinnere mich, als ich mir Sorgen machte, dass es beim Vergleichen von Objekten untereinander beim Vergleichen von Erwartungs- und Ergebniswerten mit Assert nicht funktionieren würde.

Die peinliche Geschichte wurde verlängert, aber die Schlussfolgerung lautet:

boolean result = false;
int primitiveA = 10;
int primitiveB = 10;

//Das Ergebnis ist wahr
result = primitiveA == primitiveB;

Integer integerA = new Integer(10);
Integer integerB = new Integer(10);

//Das Ergebnis ist falsch
result = integerA == integerB;
//Das Ergebnis ist wahr
result = integerA.equals(integerB);

Gelegentlich kann es erforderlich sein, zum Anfang zurückzukehren und die Grundlagen zu überprüfen.

Recommended Posts