比方說,我有一個Dog
類,它有一個字段private final int age
和一個方法public Dog ageBy(Time time)
,它每次調用時都返回一個狗的新實例。一個Dog
類不僅是不可變的,但沒有任何get
方法返回它的年齡,換句話說狗的合同不允許他說他的年齡(爲什麼?因爲沒有說話的狗),他只能'樹皮','睡',並做其他狗的東西。如何在不暴露字段的情況下實現equals?
但Dog
可以比較其他狗的年齡。爲此,我需要在Dog
類中覆蓋public equals(Object o)
方法。但問題是,沒有辦法比較它,因爲我不能訪問通過的狗的年齡。
問題:如何在不暴露任何對象字段的情況下實現equals方法?
所有'Dog'情況下訪問其他'Dog'實例的'private'領域。 – resueman
謝謝,我不知道:) –