如果你使用Eclipse或者其他的IDE,IDE也可能会提供生成良好的hashCode()方法和equals()方法。

  需要注意记住的事情

  1、尽量保证使用对象的同一个属性来生成hashCode()和equals()两个方法。在我们的案例中,我们使用员工id。

  2、eqauls方法必须保证一致(如果对象没有被修改,equals应该返回相同的值)

  3、任何时候只要a.equals(b),那么a.hashCode()必须和b.hashCode()相等。

  4、两者必须同时重写。

  当使用ORM的时候特别要注意的

  1、如果你使用ORM处理一些对象的话,你要确保在hashCode()和equals()对象中使用getter和setter而不是直接引用成员变量。因为在ORM中有的时候成员变量会被延时加载,这些变量只有当getter方法被调用的时候才真正可用。

  2、例如在我们的例子中,如果我们使用e1.id == e2.id则可能会出现这个问题,但是我们使用e1.getId() == e2.getId()不会出现这个问题。