我的代码如下:
class GlobalInfo {
// multiple properties here
}
class RegionalInfo extends GlobalInfo {
// multiple properties here
GlobalInfo parent;
}
class BankInfo extends GlobalInfo {
// multiple properties here
GlobalInfo parent;
}
一个RegionInfo中可能有多个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对象的根父级。从第一个例子来看,它将是中西部,在第二个例子是休斯敦。
我更多地是C ++开发人员,可以想出一个具有多个循环的代码来查找根父母。但是我希望在Java中可能有更好的方法。
欢迎任何帮助!
最佳答案
将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;
}