Die überprüfung, ob zwei Objekte gleich sind, auch wenn Sie könnte null sein
Manchmal, ich sehe dies:
if (a.equals(b)) do(something);
Jedoch, wenn a
null ist, wird eine NullPointerException geworfen wird. Vorausgesetzt, wenn a==null
und b==null
oder wenn nur a==b
ich möchte do(something)
. Was ist der einfachste Weg dies zu tun ist zu überprüfen, ohne immer eine Ausnahme?
- Umgang mit null als Sonderfall? Es scheint wie eine triviale Lösung, dass ich annehme, es gibt einen Grund, warum du das nicht können? Bitte erläutern Sie.
- Das scheint so trivial nicht wahr? Es scheint ratlos beiden anderen. Dies würde eine interessante interview-Frage. Es ist nicht so, dass ist schwer, aber es ist schwer zu tun, in einer einfachen Weise.
- Manchmal sind die Dinge, die einfach Aussehen, sind nicht immer am einfachsten zu erreichen. Dies war die erste Lektion, die ich gelernt, in der Infinitesimalrechnung und der Suche nach dem Fang in irgendetwas hat mich gerettet aus einer Menge von Fehltritten
- Bitte klären Sie, ob Sie möchten, um Sie vergleichen das Objekt, oder wenn die zwei a und b zeigen auf das selbe Objekt? für die erste option, die Antworten nur, wenn(a==b) für die zweite option sein, wenn(a==b && a==null||ein.equals(b) )
- Genauso wie equals() immer funktioniert, Sie vergleichen das Objekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
(Die
a==b
behandelt den Fall, wenn beide null sind.)Sich auch bewusst sein, ist Java 7 und höher Objekt.gleich Methode:
Anderen Weg, es zu schreiben.