Прямая перезапись:
// compare in a null-safe manner
if (list == null || other.list == null) {
return list == other.list;
} else {
return list.size() == other.list.size() ||
list.equals(other.list));
}
, за исключением случаев, когда тип list
является стандартным Java SE List
классом, который можно исключить с помощью микрооптимизации size()
. (Типичная реализация List.equals сделает это за вас.) Таким образом, мы можем переписать вышеприведенное как
// compare in a null-safe manner
if (list == null || other.list == null) {
return list == other.list;
} else {
return list.equals(other.list));
}
, за исключением того, что Objects.equals(...)
делает. Итак, окончательная перезапись:
// compare in a null-safe manner
return Objects.equals(list, other.list);
Неясно, будет ли среда IDE генерировать equals
методы для проверки полей в нулевом безопасном режиме. Но противоположность этому заключается в том, что желательно разрабатывать свои классы так, чтобы вам не нужно было это делать. Например, используйте пустой List
вместо null
.