我的代码如下:

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;
}

07-27 18:01