Я пытаюсь реализовать RecyclerView ListAdapter с обратным вызовом DiffUtils, чтобы обновлять / вставлять только те строки, которые были изменены не все.Для реализации я должен переопределить эти функции из утилит diff areItemsTheSame
и areContentsTheSame
.Я могу проверить areItemsTheSame
, используя идентификатор каждого объекта, который я получаю из базы данных.Но для areContentsTheSame
я не хочу писать функцию равенства и сопоставлять каждое поле с помощью метода .equals
или аналога.Мне интересно, могу ли я использовать функцию hashCode по умолчанию из класса?Если нет, могу ли я переопределить функцию hashCode следующим образом?
public class Person {
String name;
String surname;
String country;
int age;
public Person(String name, String surname, String country, int age) {
this.name = name;
this.surname = surname;
this.country = country;
this.age = age;
}
@Override
public int hashCode() {
int prime=31;
int sum = prime*this.name.hashCode();
sum=sum+this.surname.hashCode();
sum=sum+this.country.hashCode();
sum=sum+this.age;
return sum;
}
}