2016-11-14 2 views
-1

나는 약간의 걸림돌을 겪은 것으로 보인다. 나는 오버라이드 된 equals 메소드를 필요로하는 3 개의 클래스를 가지고있다. 그러나, 나는 현재 자신의 클래스 구조를 이해하므로 이것이 불가능합니다. 나는이 문제에 대한 지침을 찾고있다.서로 종속적 인 여러 클래스에 대해 equals 메서드를 만드는 방법

I 클래스 B. A 등급은 "보유-A"급 C. 클래스 B는 "보유-A"클래스 안에있는

난, 클래스 B가 클래스 B의 내부에있는, 클래스 A가 겉으로는 각 방법에 해당하는 경우 클래스 A. 클래스 C입니다 내부에있는 C.

나는, 클래스 C가 "이있다 -는"

어떻게 하나가 올바르게이 방법을 동일 정의 않는 클래스 A를, 또 다른에 따라 달라집니다 ? 클래스 관계를 재구성해야합니까, 아니면이 관계에서 equals 메소드를 정의 할 수 있습니까?

감사합니다.

편집 :

A 급 박스입니다 : 더 명확히하기 위해, 여기 (이 실제로 무엇 아니라,이 관계는 왜 그런지에 대한 이해는) 클래스에 대한 몇 가지 추가 정보를 원하시면입니다. 클래스 B는 작은 상자입니다. 클래스 C는 개체입니다.

각 A는 B를 가짐. 각 B는 몇 개의 C를 갖는다. 각 C는 B뿐만 아니라 A도 알아야합니다. 그러므로 우리에게이 순환적인 관계를 제공하는 A 필드를 취합니다. C 클래스 A를 참조 퍼팅의

+1

순환 참조가 있으십니까? 메모리 누출 경고! – Antoniossss

+0

왜 ....? 당신은 자동차의 인텐시티를 똑같이 강요합니다. Person 인스턴스는 당신이 그것을 재귀, 대칭, 추이 성, 일관성있게 만들어야한다고 생각합니다. ... –

+0

@ 영어로 너무 많은 영어 단어 XD를 이해하지 못합니다 – Antoniossss

답변

0

Insteed이 C 상황에서 B에서 A을 얻을, 그래서 당신이 좋아하는 뭔가를 할 수있을 것 c.getB().getA()하거나 getParent()

평등을 측정 할 경우 C = C.getB() == C.getB() == C.getA() C.getA() C.get() -> c.getB(). getA()

0

클래스 C는 Class A를 포함하면 안됩니다. 이것이 무한 원을 만드는 방법을 알 수 있습니다. A> B> C> A> B> C> A. 정확한 문제를 알지 못해서 C에서 Enumeration을 사용하여 "상자"가 무엇인지 나타낼 수는 있지만 상자를 직접 참조하지 않아도됩니다.