我很好奇我在测试日食功能时遇到的这个错误:
我尝试使用命令“generate hashCode& Equals”,但因为该类只有static
方法,所以它拒绝了它。这是如何工作的(即hashCode()
/ equals()
需要非静态方法?)?
谢谢
答案 0 :(得分:2)
hashCode应该为类的每个实例生成唯一标识符,并且equals将此实例与另一个实例进行比较,以查看它们是否相等。根据定义,这些方法对于此类的每个实例都是必需的,因此该方法不能是静态的。此外,这些方法从Object继承为非静态方法,您无法更改它。
答案 1 :(得分:2)
hashCode
和equals
方法属于具体对象,需要属于该对象的成员来计算任何有意义的值。
EG。如果要比较同一个类的两个实例,可以通过equals
和/或hashCode
方法比较它们的“计算值”来实现。
静态方法和成员属于该类,而不是唯一的具体实例。