我的代码如下:
class GlobalInfo {
// multiple properties here
}
class RegionalInfo extends GlobalInfo {
// multiple properties here
GlobalInfo parent;
}
class BankInfo extends GlobalInfo {
// multiple properties here
GlobalInfo parent;
}
一个RegionalInfo中可能有多个BankInfo。 BankInfo对象中可能有多个RegionalInfo父级。
例如,
BankInfo == Bank Of America
RegionalInfo == Dallas // 1st parent
RegionalInfo == Texas // Dallas's parent
RegionalInfo == MidWest // Texas's parent and final parent.
在上面的示例中,BankInfo对象的直接父级指向达拉斯,它的父级指向德克萨斯州,然后它的父级指向MidWest。
在某些情况下,可能只有一两个父母
例如,
BankInfo == University Credit Union
RegionalInfo == Houston
所以我想找到的是每个BankInfo对象的根父级。从第一个例子开始,这将是MidWest,在第二个例子中,它将是休斯顿。
我更像是一名C ++开发人员,可能会想出一个具有多个循环的代码来查找根父母。但我希望在Java中可能有更好的方法。
欢迎任何帮助!
答案 0 :(得分:1)
如果将父属性移动到GlobalInfo中,则可以使用递归循环执行此操作。
public GlobalInfo getTopParent() {
GlobalInfo result = this;
if (this.parent != null) {
result = this.parent.getTopParent();
}
return result;
}
只要你有父母,你就会继续上去。
答案 1 :(得分:1)
将parent
移至GlobalInfo
:
class GlobalInfo {
GlobalInfo parent;
// multiple properties here
}
然后你可以进行while
循环:
public GlobalInfo getRootParent(){
if(this.parent == null){
return null;
}
GlobalInfo result = this;
while(result.parent != null){
result = result.parent;
}
return result;
}