2014-12-09 103 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, ...)