2013-06-21 9 views
6

Czy istnieje gdzieś w standardowych bibliotekach Java, które mają statyczną funkcję równości coś takiego?Czy Java ma ogólny test równości, który obsługuje także wartości null?

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); 
} 

Właśnie zaimplementowałem to w nowej klasie projektu Util, po raz kolejny. Wydaje się niewiarygodne, że nie będzie on wysyłany jako standardowa funkcja biblioteki ...

+1

W rodzimym języku Java, nie ma (AFAIK). Obejmuje to biblioteki takie jak [Apache Commons] (http://commons.apache.org/). –

+0

@LuiggiMendoza od 7 jest – fge

+0

@VicSchappert Czy byliśmy w stanie odpowiedzieć na pytanie do zadowolenia? A może brakuje ci niektórych rzeczy? Jeśli nie, powinieneś zaakceptować jedną z odpowiedzi poniżej: – martido

Odpowiedz

13

W JDK 7 jest Objects#equals(). Od wersji Javadoc:

Zwraca wartość true, jeśli argumenty są sobie równe, a fałsz . W związku z tym, jeśli oba argumenty są puste, zwracana jest wartość true i jeśli dokładnie jeden argument ma wartość NULL, zwracana jest wartość false. W innym przypadku równość jest określana za pomocą metody równości pierwszego argumentu .

Oprócz wspomnianej już funkcji w Apache Commons Lang tam również jeden w Google guawy, Objects#equal():

+0

Od http://stackoverflow.com/help/editing "Jeśli nie czujesz się dobrze z pomysłem, że Twój wkład jest edytowany wspólnie przez innych zaufanych użytkowników, może to nie być twoja strona". –

+0

@SteveKuo Co masz na myśli? Nie jestem świadomy, że zrobiłem coś złego ... – martido

+0

Miałem na myśli to, że cofasz moje zmiany. Być może jest błąd w stackoverflow, w którym nie dokonano jawnego cofnięcia. –

Powiązane problemy