Это просто позволяет вам пропустить нулевые проверки в вашем методе equals ().
Майкл Майерс
1
Если вы реализуете коллекцию, ваш метод .contains () при задании «o» должен проверить, «содержит ли эта коллекция хотя бы один элемент e, такой что (o == null? E == null: o.equals (e )) ". Точно так же ваш метод .remove () должен удалить такой элемент.
newacct 09
6
Всего два цента. Я бы использовал: public static boolean bothNullOrEqual (Object x, Object y) {return (x == y || (x! = Null && x.equals (y))); } ИМХО, для начинающих программистов так удобнее.
m_vitaly 05
1
Другой вариант использования: сравните значение, чтобы увидеть, изменилось ли оно по сравнению с предыдущим значением во время грязной проверки.
Neromancer
Ответы:
193
В Java 7 теперь вы можете напрямую выполнять нулевое безопасное равенство:
Ответы:
В Java 7 теперь вы можете напрямую выполнять нулевое безопасное равенство:
Objects.equals (x, y)
(Библиотека Jakarta Commons ObjectUtils.equals () устарела с Java 7)
источник
return (x == y) || (x != null && x.equals(y));
)если по какой-то причине у вас есть доступ к библиотеке Jakarta Commons, есть ObjectUtils.equals () и множество других полезных функций.
РЕДАКТИРОВАТЬ: изначально неправильно прочитал вопрос
источник
Если вы используете <1.7, но у вас есть Guava:
Objects.equal(x, y)
источник