2014-12-09 66 views
0

我试图实现hashCode方法和有父类使用Objects.hash()方法的类。如何获得java中对象的父对象引用?

public int hashCode() { 
    return Objects.hash(super, attribute1); 
} 

我想创建的hashCode我必须考虑到父(你必须检查父,同时实现equals方法相同)。

事实证明Objects.hash方法是一个对象,但super是一个保留字。

我知道它可以使用其他解决方法来实现,但是,有没有办法通过引用父对象来调用Objects.hash()方法?

+0

也许'Objects.hash(super.hashCode())' – sfat 2014-12-09 13:16:12

+0

我猜这会收件箱中的super.hashCode()到一个Integer对象,并将使用它的参数Objects.hash()方法。它会起作用,但问题仍未解决。我如何获得父对象的引用? – 2014-12-09 13:24:09

+0

@DiegoRosado:没有“父对象”这样的事情。只有'this'指向的当前对象。 'super'只是访问'this',成员以不同的方式查找。 – newacct 2014-12-09 22:18:53

回答

2

没有“父对象”这样的东西。 this是当前实例。 不知道你在这里试图做什么,但怀疑你需要这样做。

只是attribute1.hashCode()在你的例子中似乎足够。或者,如果你有多个属性,那么Objects.hash(attribute1, attribute2, attribute3, ...)