Wie kann man in Java feststellen, ob zwei Long-Objekte gleich sind?
Apr 20, 2023 pm 09:10 PMWirft eine Frage:
Long a = 4l; Long b = 4l; a == b //true
Long a = 128l; Long b = 128l; a == b //false
Wenn der Wert von Long zwischen [-127.128] liegt, ist es in Ordnung, „==“ zu verwenden, um zu bestimmen, ob er gleich ist. Wenn er nicht in diesem Bereich liegt, kann „==“ nicht sein Der Grund dafür ist folgender: Quellcode Erklärung:
public static Long valueOf(long l) { final int offset = 128; if (l >= -128 && l <= 127) { // will cache return LongCache.cache[(int)l + offset]; } return new Long(l); }
Wenn es nicht zwischen [-127,128] liegt, wird ein neues Objekt erstellt. Natürlich „==“ zwei verschiedene Objekte, das Ergebnis muss falsch sein.
Lösung:
1. Verwenden Sie longValue() in Long für die Konvertierung.
Long a = 128l; Long b = 128l; a.longValue() == b.longValue() //true
Long a = 128l;
Long b = 128l;
a.equals(b);//true
Nach dem Login kopieren
Tatsächlich ist Long eine Art Java-Datenverpackungsklasse. Das Folgende ist der Fall, wenn die Verpackungsklasse Long in den Basisdatentyp Long konvertiert wird entpackt und in grundlegende Datentypen konvertiert: Um Integer in int zu konvertieren, müssen Sie die Methode intValue() aufrufen. Um Double in double umzuwandeln, müssen Sie die Methode doubleValue() aufrufen um die Methode floatValue() aufzurufenLong a = 128l; Long b = 128l; a.equals(b);//true
Das obige ist der detaillierte Inhalt vonWie kann man in Java feststellen, ob zwei Long-Objekte gleich sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Brechen oder aus Java 8 Stream foreach zurückkehren?
