两个类是否可以相互成为彼此的数据成员?

时间:2015-11-16 15:15:48

标签: java

A类是否可能是另一个B类的一个字段,同时B类可能是A类的一个字段?

我有一个场景,我有两个班:比赛和场地。如果Java允许的话,我不确定是否将Venue作为Match的数据成员或以其他方式将每个Venue作为另一个的数据成员。

2 个答案:

答案 0 :(得分:4)

这是可能的,但我怀疑它可以在对象构建时间内实现,这会导致循环依赖

首先创建classAclassB个对象,然后使用每个对象的setter分配相互引用。

答案 1 :(得分:2)

是的,Java实际上支持类之间的循环依赖。所以你要问的是可以实现的,但正如另一个答案指出的那样,它会在施工时产生一些问题。我的意思是一个构造函数调用另一个可能会导致溢出错误。所以你可以做类似的事情。

Match match = new Match();
Venue venue = new Venue();
match.setVenue(venue);
venue.setMatch(match);

鉴于垃圾收集,如果匹配和地点相互引用而不是任何其他对象,则它们将处于隔离状态,即隔离岛。他们没有资格进行垃圾收集。我希望这有帮助。