我正在遵循Notes应用程序的教程,其中实现Note
的名为Serializable
的模型类具有称为equals()
和hashCode()
的两个方法。使用这些方法的目的是什么?他们在此代码段中做什么?
下面是方法:
hashCode()
:
@Override
public int hashCode() {
int result = (int)note_id;
result = 31 * result + (title != null ? title.hashCode() : 0);
return result;
}
equals()
:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Note)) return false;
Note note = (Note) o;
if (note_id != note.note_id) return false;
return title != null ? title.equals(note.title) : note.title == null;
}
其中title
是String
类型,而note_id
是autoGenerate
Long
变量。