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