我似乎遇到了一些障碍。我有3个类需要重写equals方法。但是,正如我目前了解他们的班级结构,这是不可能的。我正在寻找有关此事的一些指导。
我有A班,里面是B班.A级"有-a" B级。
我有B班,里面是C班.B"有-a" C级。
我有C级,里面是A级.C级"有-a" A级。
如何正确定义equals方法,看似每个equals方法依赖于另一个?我应该重组类关系,还是可以定义一个给定这种关系的equals方法?
谢谢!
编辑:为了进一步澄清,这里有关于课程的更多信息(这不是他们实际上是什么,但更好地理解为什么这种关系是这样的):
A类是一个盒子。 B类是一个较小的盒子。 C类是一个对象。
每个A都有B. 每个B都有几个C。 每个C不仅需要知道它的B,还需要知道它的A;因此它将A作为一个字段,给我们这种循环关系。
答案 0 :(得分:0)
在statement
课程中引用了A
的引用,从C
上下文A
获取B
,这样您就可以类似于C
或简称c.getB().getA()
如果C == C和C.getB()== C.getB()和C.getA()== C.getA(),其中C.get() - > c,则测量平等。 getB()。木屐()
答案 1 :(得分:0)
C类不应包含A类。您可以看到这将如何创建无限循环。 A> B个C>将> B个C>一种。不知道确切的问题,我建议可能在C中使用枚举来指示它所在的“盒子”,但不直接引用该框。