Проверка того, являются ли два объекта равными, даже если они могут быть нулевыми

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

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

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

Ответ 1

if( a==b || (a!=null && a.equals(b)) )

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


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

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

Ответ 2

Другой способ записи.

if (a == null ? b == null : a.equals(b))