2013-06-21 2 views
6

Gibt es in den Java-Standardbibliotheken irgendwo eine statische Gleichheitsfunktion?Hat Java einen generischen Test für die Gleichheit, der auch Nullen behandelt?

public static <T> boolean equals(T a, T b) 
{ 
    if (a == null) 
     return b == null; 
    else if (b == null) 
     return false; 
    else 
     return a.equals(b); 
} 

ich dies nur in einer Klasse neuen Projekt Util umgesetzt, zum x-ten Mal. Scheint unglaublich, dass es nicht als Standardbibliotheksfunktion versendet würde ...

+1

In native Java, gibt es nicht (AFAIK) ist. Dies wird in Bibliotheken wie [Apache Commons] (http://commons.apache.org/) behandelt. –

+0

@LuiggiMendoza von 7 auf gibt es – fge

+0

@VicSchappert Waren wir in der Lage, die Frage zu Ihrer Zufriedenheit zu beantworten? Oder vermisst du etwas? Wenn nicht, sollten Sie eine der Antworten unter – martido

Antwort

13

In JDK 7 gibt es Objects#equals(). Aus dem Javadoc:

Gibt True zurück, wenn die Argumente einander gleich sind und andernfalls . Wenn beide Argumente null sind, wird daher true zurückgegeben und wenn genau ein Argument null ist, wird false zurückgegeben. Andernfalls wird die Gleichheit mit der Methode equals des ersten Arguments ermittelt.

Neben der bereits erwähnten Funktion in Apache Commons Lang ein gibt es auch in Google Guava, Objects#equal():

+0

Von http://stackoverflow.com/help/editing "Wenn Sie nicht mit der Idee zufrieden sind, dass Ihre Beiträge von anderen vertrauenswürdigen Benutzern gemeinsam bearbeitet werden, ist dies möglicherweise nicht die richtige Website für Sie." –

+0

@SteveKuo Was meinst du? Ich bin mir nicht bewusst, dass ich etwas falsch gemacht habe ... – martido

+0

Ich bezog mich auf Sie meine Änderungen rückgängig machen. Vielleicht gibt es einen Fehler in Stackoverflow, wo Sie es nicht explizit rückgängig gemacht haben. –

Verwandte Themen