0

我很好奇我在测试 Eclipses 的功能时遇到的这个错误:

在此处输入图像描述

我尝试使用命令“生成 hashCode & Equals”,但是因为该类只有static方法,所以它拒绝了它。这是如何工作的(即hashCode()/equals()需要非静态方法?)?

谢谢你

4

2 回答 2

3

hashCodeequals方法属于具体对象,需要属于该对象的成员来计算任何有意义的值。

例如。如果您想比较同一类的两个实例,您可以通过它们的equals和/或hashCode方法比较它们的“计算值”。

静态方法和成员属于类,而不是唯一地属于具体实例。

于 2013-05-08T14:53:24.087 回答
2

hashCode 应该为类的每个实例生成一个唯一标识符,并且 equals 将此实例与另一个实例进行比较以查看它们是否相等。根据定义,这些方法对于此类的每个实例都是必需的,因此该方法不能是静态的。此外,这些方法作为非静态方法从 Object 继承,您无法更改。

于 2013-05-08T14:52:48.110 回答