如何为相互依赖的多个 类 创建 equals 方法
How to create equals methods for multiple classes which are dependent upon each other
我似乎 运行 遇到了一些麻烦。我有 3 个 classes 需要覆盖 equals 方法。但是,根据我目前对它们 class 结构的理解,这是不可能的。我正在寻找有关此事的指导。
我有classA,里面是classB.ClassA"has-a"classB.
我有classB,里面是classC.ClassB"has-a"classC.
我有classC,里面是classA.ClassC"has-a"classA.
当看似每个 equals 方法都依赖于另一个时,如何正确定义 equals 方法?我应该重构 class 关系,还是可以根据这种关系定义一个 equals 方法?
谢谢!
编辑:为了进一步澄清,这里有一些关于 classes 的更多信息(这不是它们的实际含义,但可以更好地理解为什么这种关系如此):
Class A是一个盒子。
Class B 是一个较小的盒子。
Class C 是一个对象。
每个A都有一个B。
每个 B 都有几个 C。
每个 C 不仅需要知道它的 B,还需要知道它的 A;因此它将 A 作为一个字段,给了我们这种循环关系。
而不是在 C
class 中引用 A
,从 C
上下文中获取 B
中的 A
,所以你将能够做这样的事情 c.getB().getA()
或者简单地 getParent()
如果 C==C and C.getB()==C.getB() and C.getA()==C.getA() where C.get()->c.getB().getA()
Class C 不应包含 Class A。您可以看到这将如何创建无限圆。 A>B>C>A>B>C>A。不知道确切的问题,我建议可能在 C 中有一个 Enumeration 来指示它在什么 "box" 中,但不要直接引用该框。
我似乎 运行 遇到了一些麻烦。我有 3 个 classes 需要覆盖 equals 方法。但是,根据我目前对它们 class 结构的理解,这是不可能的。我正在寻找有关此事的指导。
我有classA,里面是classB.ClassA"has-a"classB.
我有classB,里面是classC.ClassB"has-a"classC.
我有classC,里面是classA.ClassC"has-a"classA.
当看似每个 equals 方法都依赖于另一个时,如何正确定义 equals 方法?我应该重构 class 关系,还是可以根据这种关系定义一个 equals 方法?
谢谢!
编辑:为了进一步澄清,这里有一些关于 classes 的更多信息(这不是它们的实际含义,但可以更好地理解为什么这种关系如此):
Class A是一个盒子。 Class B 是一个较小的盒子。 Class C 是一个对象。
每个A都有一个B。 每个 B 都有几个 C。 每个 C 不仅需要知道它的 B,还需要知道它的 A;因此它将 A 作为一个字段,给了我们这种循环关系。
而不是在 C
class 中引用 A
,从 C
上下文中获取 B
中的 A
,所以你将能够做这样的事情 c.getB().getA()
或者简单地 getParent()
如果 C==C and C.getB()==C.getB() and C.getA()==C.getA() where C.get()->c.getB().getA()
Class C 不应包含 Class A。您可以看到这将如何创建无限圆。 A>B>C>A>B>C>A。不知道确切的问题,我建议可能在 C 中有一个 Enumeration 来指示它在什么 "box" 中,但不要直接引用该框。