In einem bestimmten Projekt war der gleichwertige Vergleich zwischen der Wrapper-Klasse und dem primitiven Typ falsch, daher schrieb ich einen Artikel für Neulinge.
DemoApp.java
public class DemoApp {
public static void main(String[] args) {
Integer x = 999999;
Integer y = 999999;
int z = 999999;
//Von der Wrapper-Klasse==Vergleich
if (x == y) {
System.out.println("same");
} else {
System.out.println("other");
}
//Vergleich mit der Methode der Wrapper-Klasse gleich
if (x.equals(y)) {
System.out.println("same");
} else {
System.out.println("other");
}
//Wrapper-Klasse und primitiver Typ==Vergleich
if (x == z) {
System.out.println("same");
} else {
System.out.println("other");
}
//Der Vergleich der Wrapper-Klasse und des primitiven Typs entspricht der Methode
if (x.equals(z)) {
System.out.println("same");
} else {
System.out.println("other");
}
}
}
Ausführungsergebnis
other
same
same
same
Dies ist das Ergebnis der Definition einer Wrapper-Klasse mit derselben Nummer und einer Variablen vom primitiven Typ und des Vergleichs der Werte.
| Artikelnummer | Bedingungen | Ergebnis |
|---|---|---|
| 1 | Wrapper-Klasse und Wrapper-Klasse==Äquivalenter Vergleich |
anders |
| 2 | Wrapper-Klasse und Wrapper-KlasseequalsGleichwertvergleich nach Methode |
das Gleiche |
| 3 | Wrapper-Klasse und primitiver Typ==Äquivalenter Vergleich |
das Gleiche |
| 4 | Wrapper-Klasse und primitiver TypequalsGleichwertvergleich nach Methode |
das Gleiche |
== bestimmt, ob es auf dieselbe Instanz (dasselbe Objekt) verweist, aber es ist interessant, dass die Wrapper-Klasse und der primitive Typ ebenfalls als ** gleich ** bestimmt werden.
Recommended Posts