假设我有三个班级,国家,城镇和公民。一个国家包含城镇,一个城镇包含公民。
public class Nation {
Set<Town> towns;
}
public class Town {
Set<Citizen> citizens;
}
public class Citizen {
}
有时我需要了解公民所属的国家。但是,通过上述实现,除非我这样做,否则无法知道:
public class Nation {
Set<Town> towns;
}
public class Town {
Set<Citizen> citizens;
final Nation nation;
public Town (Nation nation) {
this.nation = nation;
}
}
public class Citizen {
final Town town;
public Citizen (Town town) {
this.town = town;
}
public Nation getNation() {
return this.town.nation;
}
}
我经常被警告远离“循环引用”。这是否构成循环参考?如果是这样,应该避免吗?如果应该避免,这个解决方案的替代方案是什么?
答案 0 :(得分:0)
通过最初的实施,获得一个公民的国家将是一个两步的过程。
为此,你需要
因此,在您的主要课程的某个地方,您需要对国家/地区的详细信息进行以下操作
nations.get(towns.get(citizens.get(person))) //--> gives you the Nation details