【发布时间】:2016-08-01 15:06:39
【问题描述】:
假设我有一个Dog 类,它有一个字段private final int age 和一个方法public Dog ageBy(Time time),每次调用它都会返回狗的新实例。 Dog 类不仅是不可变的,而且没有任何 get 方法来返回它的年龄,换句话说,狗的合同不允许他说出他的年龄(为什么?因为没有会说话的狗),他只能“吠”、“睡觉”和做其他狗的事。
但是Dog可以按年龄和其他狗比较。为此,我需要覆盖 Dog 类中的 public equals(Object o) 方法。但问题是没有办法比较它,因为我无法访问经过的狗年龄。
问题:如何在不暴露对象的任何字段的情况下实现equals方法?
【问题讨论】:
-
所有
Dog实例都可以访问其他Dog实例的private字段。 -
谢谢,我不知道 :)
标签: java