我创建了一个类“书”:
public class Book {
public static int idCount = 1;
private int id;
private String title;
private String author;
private String publisher;
private int yearOfPublication;
private int numOfPages;
private Cover cover;
...
}
然后我需要覆盖hashCode()和 equals() 方法。
@Override
public int hashCode() {
int result = id; // !!!
result = 31 * result + (title != null ? title.hashCode() : 0);
result = 31 * result + (author != null ? author.hashCode() : 0);
result = 31 * result + (publisher != null ? publisher.hashCode() : 0);
result = 31 * result + yearOfPublication;
result = 31 * result + numOfPages;
result = 31 * result + (cover != null ? cover.hashCode() : 0);
return result;
}
equals() 没有问题。我只是想知道 hashCode() 方法中的一件事。
注意:IntelliJ IDEA 生成了 hashCode() 方法。
那么,将结果变量设置为 id 是否可以,或者我应该使用一些素数?
这里有什么更好的选择?
谢谢!