0

クラスAとクラスBの2つのクラスがあります。

クラス A には、クラス B のオブジェクトの ArrayList があります。

各クラス B オブジェクトには、クラス A オブジェクトを格納する属性があります。

したがって、クラス A オブジェクトを作成すると、オブジェクト クラス B の ArrayList にデータが入力されます。各オブジェクト クラス B はオブジェクト クラス A (入力されているものと同じ) を作成し、オブジェクト クラス B の ArrayList を作成します...そしてすぐ。

この無限再帰を回避するにはどうすればよいですか?

4

2 に答える 2

0

クラス(型として)とオブジェクトの違いを誤解していると思います。

...So when I create a Class A object, it populates the ArrayList of objects Class B. Each object Class B creates an object Class A (same as the one that is being populated)... --sameオブジェクトと同じではありませんが、クラスと同じです。各オブジェクトBには、クラスのオブジェクトが格納されますA。また、一度作成されたオブジェクトAは、 のような同じオブジェクトではない場合がありますA->B->A

Aただし、 objectから親オブジェクトへの参照がB必要な場合は、参照を使用できます (たとえば、そのパブリック メソッドを使用するなど)。したがって、この場合、オブジェクトの新しいエンティティを で作成してはなりませんが、オブジェクトAB作成するときにB、コンストラクターでB親 object へのパラメーター参照として使用する必要がありますA

C++ では、このトリックはかなり一般的です。

于 2012-11-18T23:04:25.497 に答える