我正在尝试使用 DiffUtils 回调实现 RecyclerView ListAdapter,以仅更新/插入已更改的行而不是全部。要实现,我必须从 diff utils
areItemsTheSame
和areContentsTheSame
. 我可以检查areItemsTheSame
使用从 db 获得的每个对象的 id。但是因为areContentsTheSame
我不想编写 equals 函数并用.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;
}
}