Проверка, равны ли два объекта, даже если они могут быть нулевыми - PullRequest
10 голосов
/ 30 января 2010

Иногда я вижу это:

if (a.equals(b)) do(something);

Однако, если a равно нулю, генерируется исключение NullPointerException. Предполагая, когда a==null и b==null или, если просто a==b, я бы хотел do(something). Какой самый простой способ сделать эту проверку без исключения?

Ответы [ 2 ]

24 голосов
/ 30 января 2010

Другой способ написать это.

if (a == null ? b == null : a.equals(b))
22 голосов
/ 30 января 2010
if( a==b || (a!=null && a.equals(b)) )

(a==b обрабатывает случай, когда оба значения равны нулю.)


Также помните о Java 7 и выше Object.equals Метод:

if(java.util.Object.equals(a, b))
...