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-Klasseequals Gleichwertvergleich nach Methode |
das Gleiche |
3 | Wrapper-Klasse und primitiver Typ== Äquivalenter Vergleich |
das Gleiche |
4 | Wrapper-Klasse und primitiver Typequals Gleichwertvergleich 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