Android 迭代包含其他对象实例的对象

Android 迭代包含其他对象实例的对象,android,loops,Android,Loops,我正在寻找一种针对特定情况的优雅解决方案。 我有一个JSON文件 在我解析它之后,我得到一个类对象,它的字段是其他对象的实例。 该类如下所示: public class TaboolaResults { @SerializedName("session") @Expose private String session; @SerializedName("App-Below-Main-Column-Thumbnails-HP") @Expose private AppBelowMainColu

我正在寻找一种针对特定情况的优雅解决方案。 我有一个JSON文件 在我解析它之后,我得到一个类对象,它的字段是其他对象的实例。 该类如下所示:

public class TaboolaResults {

@SerializedName("session")
@Expose
private String session;

@SerializedName("App-Below-Main-Column-Thumbnails-HP")
@Expose
private AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-2")
@Expose
private AppBelowMainColumnThumbnailsHP2 appBelowMainColumnThumbnailsHP2;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-3")
@Expose
private AppBelowMainColumnThumbnailsHP3 appBelowMainColumnThumbnailsHP3;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-4")
@Expose
private AppBelowMainColumnThumbnailsHP4 appBelowMainColumnThumbnailsHP4;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-5")
@Expose
private AppBelowMainColumnThumbnailsHP5 appBelowMainColumnThumbnailsHP5;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-6")
@Expose
private AppBelowMainColumnThumbnailsHP6 appBelowMainColumnThumbnailsHP6;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-7")
@Expose
private AppBelowMainColumnThumbnailsHP7 appBelowMainColumnThumbnailsHP7;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-8")
@Expose
private AppBelowMainColumnThumbnailsHP8 appBelowMainColumnThumbnailsHP8;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-9")
@Expose
private AppBelowMainColumnThumbnailsHP9 appBelowMainColumnThumbnailsHP9;

public String getSession() {
    return session;
}

public void setSession(String session) {
    this.session = session;
}

public AppBelowMainColumnThumbnailsHP getAppBelowMainColumnThumbnailsHP() {
    return appBelowMainColumnThumbnailsHP;
}

public void setAppBelowMainColumnThumbnailsHP(AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP) {
    this.appBelowMainColumnThumbnailsHP = appBelowMainColumnThumbnailsHP;
}

public AppBelowMainColumnThumbnailsHP2 getAppBelowMainColumnThumbnailsHP2() {
    return appBelowMainColumnThumbnailsHP2;
}

public void setAppBelowMainColumnThumbnailsHP2(AppBelowMainColumnThumbnailsHP2 appBelowMainColumnThumbnailsHP2) {
    this.appBelowMainColumnThumbnailsHP2 = appBelowMainColumnThumbnailsHP2;
}

public AppBelowMainColumnThumbnailsHP3 getAppBelowMainColumnThumbnailsHP3() {
    return appBelowMainColumnThumbnailsHP3;
}

public void setAppBelowMainColumnThumbnailsHP3(AppBelowMainColumnThumbnailsHP3 appBelowMainColumnThumbnailsHP3) {
    this.appBelowMainColumnThumbnailsHP3 = appBelowMainColumnThumbnailsHP3;
}

public AppBelowMainColumnThumbnailsHP4 getAppBelowMainColumnThumbnailsHP4() {
    return appBelowMainColumnThumbnailsHP4;
}

public void setAppBelowMainColumnThumbnailsHP4(AppBelowMainColumnThumbnailsHP4 appBelowMainColumnThumbnailsHP4) {
    this.appBelowMainColumnThumbnailsHP4 = appBelowMainColumnThumbnailsHP4;
}

public AppBelowMainColumnThumbnailsHP5 getAppBelowMainColumnThumbnailsHP5() {
    return appBelowMainColumnThumbnailsHP5;
}

public void setAppBelowMainColumnThumbnailsHP5(AppBelowMainColumnThumbnailsHP5 appBelowMainColumnThumbnailsHP5) {
    this.appBelowMainColumnThumbnailsHP5 = appBelowMainColumnThumbnailsHP5;
}

public AppBelowMainColumnThumbnailsHP6 getAppBelowMainColumnThumbnailsHP6() {
    return appBelowMainColumnThumbnailsHP6;
}

public void setAppBelowMainColumnThumbnailsHP6(AppBelowMainColumnThumbnailsHP6 appBelowMainColumnThumbnailsHP6) {
    this.appBelowMainColumnThumbnailsHP6 = appBelowMainColumnThumbnailsHP6;
}

public AppBelowMainColumnThumbnailsHP7 getAppBelowMainColumnThumbnailsHP7() {
    return appBelowMainColumnThumbnailsHP7;
}

public void setAppBelowMainColumnThumbnailsHP7(AppBelowMainColumnThumbnailsHP7 appBelowMainColumnThumbnailsHP7) {
    this.appBelowMainColumnThumbnailsHP7 = appBelowMainColumnThumbnailsHP7;
}

public AppBelowMainColumnThumbnailsHP8 getAppBelowMainColumnThumbnailsHP8() {
    return appBelowMainColumnThumbnailsHP8;
}

public void setAppBelowMainColumnThumbnailsHP8(AppBelowMainColumnThumbnailsHP8 appBelowMainColumnThumbnailsHP8) {
    this.appBelowMainColumnThumbnailsHP8 = appBelowMainColumnThumbnailsHP8;
}

public AppBelowMainColumnThumbnailsHP9 getAppBelowMainColumnThumbnailsHP9() {
    return appBelowMainColumnThumbnailsHP9;
}

public void setAppBelowMainColumnThumbnailsHP9(AppBelowMainColumnThumbnailsHP9 appBelowMainColumnThumbnailsHP9) {
    this.appBelowMainColumnThumbnailsHP9 = appBelowMainColumnThumbnailsHP9;
}
}
int currentTaboola = 1;
        for (int i = 0; i < feedItems.size(); i++) {
            if (feedItems.get(i) instanceof TaboolaItem) {
                AbstractItem item = (AbstractItem) feedItems.get(i);
                AppBelowMainColumnThumbnailsHP taboolaResult = mGsonResults.getAppBelowMainColumnThumbnails(currentTaboola);
                mTaboolaDataSet.add(new TaboolaDataSetItem(item.getItemId(), taboolaResult));
                currentTaboola++;
            }
        }
我实现我所需要的一种非常不优雅的方式是:

 private void extractTaboolaIntoFeed(final TaboolaResults results, final ArrayList<IFlexible> itemResults) {

    int i = 0;
    int currentTaboolaItem = 1;

    if (currentTaboolaItem <= mNumberOfTaboolaItems) {

        AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP = results.getAppBelowMainColumnThumbnailsHP();

        for (; i < itemResults.size(); i++) {

            if (itemResults.get(i) instanceof AbstractItem) {

                AbstractItem abstractItem = (AbstractItem) itemResults.get(i);

                FeedItemType itemType = abstractItem.getItemType();
                if (itemType.equals(FeedItemType.TABOOLA)) {
                    mTaboolaDataSet.add(new TaboolaDataSetItem(abstractItem.getItemId(), appBelowMainColumnThumbnailsHP));
                    currentTaboolaItem++;
                    break;
                }
            }
        }
    }

    if (currentTaboolaItem <= mNumberOfTaboolaItems) {
        AppBelowMainColumnThumbnailsHP2 appBelowMainColumnThumbnailsHP2 = results.getAppBelowMainColumnThumbnailsHP2();

        for (i++; i < itemResults.size(); i++) {
            if (itemResults.get(i) instanceof AbstractItem) {
                AbstractItem abstractItem = (AbstractItem) itemResults.get(i);
                FeedItemType itemType = abstractItem.getItemType();
                if (itemType.equals(FeedItemType.TABOOLA)) {
                    mTaboolaDataSet.add(new TaboolaDataSetItem(abstractItem.getItemId(), appBelowMainColumnThumbnailsHP2));
                    currentTaboolaItem++;
                    break;
                }
            }
        }
    }

    if (currentTaboolaItem <= mNumberOfTaboolaItems) {
        AppBelowMainColumnThumbnailsHP3 appBelowMainColumnThumbnailsHP3 = results.getAppBelowMainColumnThumbnailsHP3();
        for (i++; i < itemResults.size(); i++) {
            if (itemResults.get(i) instanceof AbstractItem) {
                AbstractItem abstractItem = (AbstractItem) itemResults.get(i);
                FeedItemType itemType = abstractItem.getItemType();
                if (itemType.equals(FeedItemType.TABOOLA)) {
                    mTaboolaDataSet.add(new TaboolaDataSetItem(abstractItem.getItemId(), appBelowMainColumnThumbnailsHP3));
                    currentTaboolaItem++;
                    break;
                }
            }
        }
    }

    if (currentTaboolaItem <= mNumberOfTaboolaItems) {
        AppBelowMainColumnThumbnailsHP4 appBelowMainColumnThumbnailsHP4 = results.getAppBelowMainColumnThumbnailsHP4();
        for (i++; i < itemResults.size(); i++) {

            if (itemResults.get(i) instanceof AbstractItem) {

                AbstractItem abstractItem = (AbstractItem) itemResults.get(i);
                FeedItemType itemType = abstractItem.getItemType();
                if (itemType.equals(FeedItemType.TABOOLA)) {
                    mTaboolaDataSet.add(new TaboolaDataSetItem(abstractItem.getItemId(), appBelowMainColumnThumbnailsHP4));
                    currentTaboolaItem++;
                    break;
                }
            }
        }
    }

    if (currentTaboolaItem <= mNumberOfTaboolaItems) {
        AppBelowMainColumnThumbnailsHP5 appBelowMainColumnThumbnailsHP5 = results.getAppBelowMainColumnThumbnailsHP5();
        for (i++; i < itemResults.size(); i++) {

            if (itemResults.get(i) instanceof AbstractItem) {

                AbstractItem abstractItem = (AbstractItem) itemResults.get(i);
                FeedItemType itemType = abstractItem.getItemType();
                if (itemType.equals(FeedItemType.TABOOLA)) {
                    mTaboolaDataSet.add(new TaboolaDataSetItem(abstractItem.getItemId(), appBelowMainColumnThumbnailsHP5));
                    currentTaboolaItem++;
                    break;
                }
            }
        }
    }

    if (currentTaboolaItem <= mNumberOfTaboolaItems) {
        AppBelowMainColumnThumbnailsHP6 appBelowMainColumnThumbnailsHP6 = results.getAppBelowMainColumnThumbnailsHP6();
        for (i++; i < itemResults.size(); i++) {
            if (itemResults.get(i) instanceof AbstractItem) {
                AbstractItem abstractItem = (AbstractItem) itemResults.get(i);
                FeedItemType itemType = abstractItem.getItemType();
                if (itemType.equals(FeedItemType.TABOOLA)) {
                    mTaboolaDataSet.add(new TaboolaDataSetItem(abstractItem.getItemId(), appBelowMainColumnThumbnailsHP6));
                    currentTaboolaItem++;
                    break;
                }
            }
        }
    }

    if (currentTaboolaItem <= mNumberOfTaboolaItems) {
        AppBelowMainColumnThumbnailsHP7 appBelowMainColumnThumbnailsHP7 = results.getAppBelowMainColumnThumbnailsHP7();
        for (i++; i < itemResults.size(); i++) {
            if (itemResults.get(i) instanceof AbstractItem) {
                AbstractItem abstractItem = (AbstractItem) itemResults.get(i);
                FeedItemType itemType = abstractItem.getItemType();
                if (itemType.equals(FeedItemType.TABOOLA)) {
                    mTaboolaDataSet.add(new TaboolaDataSetItem(abstractItem.getItemId(), appBelowMainColumnThumbnailsHP7));
                    currentTaboolaItem++;
                    break;
                }
            }
        }
    }

    if (currentTaboolaItem <= mNumberOfTaboolaItems) {
        AppBelowMainColumnThumbnailsHP8 appBelowMainColumnThumbnailsHP8 = results.getAppBelowMainColumnThumbnailsHP8();
        for (i++; i < itemResults.size(); i++) {
            if (itemResults.get(i) instanceof AbstractItem) {
                AbstractItem abstractItem = (AbstractItem) itemResults.get(i);
                FeedItemType itemType = abstractItem.getItemType();
                if (itemType.equals(FeedItemType.TABOOLA)) {
                    mTaboolaDataSet.add(new TaboolaDataSetItem(abstractItem.getItemId(), appBelowMainColumnThumbnailsHP8));
                    currentTaboolaItem++;
                    break;
                }
            }
        }
    }

    if (currentTaboolaItem <= mNumberOfTaboolaItems) {
        AppBelowMainColumnThumbnailsHP9 appBelowMainColumnThumbnailsHP9 = results.getAppBelowMainColumnThumbnailsHP9();
        for (i++; i < itemResults.size(); i++) {
            if (itemResults.get(i) instanceof AbstractItem) {
                AbstractItem abstractItem = (AbstractItem) itemResults.get(i);
                FeedItemType itemType = abstractItem.getItemType();
                if (itemType.equals(FeedItemType.TABOOLA)) {
                    mTaboolaDataSet.add(new TaboolaDataSetItem(abstractItem.getItemId(), appBelowMainColumnThumbnailsHP9));
                    currentTaboolaItem++;
                    break;
                }
            }
        }
    }
}
private void extractTaboolaIntoFeed(最终TaboolarResults结果,最终ArrayList itemResults){
int i=0;
int currentTaboolaItem=1;

如果(currentTaboolaItem最终将类更改为:

public class TaboolaResults {

@SerializedName("session")
@Expose
private String session;

@SerializedName("App-Below-Main-Column-Thumbnails-HP")
@Expose
private AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-2")
@Expose
private AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP2;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-3")
@Expose
private AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP3;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-4")
@Expose
private AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP4;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-5")
@Expose
private AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP5;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-6")
@Expose
private AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP6;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-7")
@Expose
private AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP7;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-8")
@Expose
private AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP8;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-9")
@Expose
private AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP9;
只需像这样迭代所有结果:

public class TaboolaResults {

@SerializedName("session")
@Expose
private String session;

@SerializedName("App-Below-Main-Column-Thumbnails-HP")
@Expose
private AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-2")
@Expose
private AppBelowMainColumnThumbnailsHP2 appBelowMainColumnThumbnailsHP2;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-3")
@Expose
private AppBelowMainColumnThumbnailsHP3 appBelowMainColumnThumbnailsHP3;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-4")
@Expose
private AppBelowMainColumnThumbnailsHP4 appBelowMainColumnThumbnailsHP4;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-5")
@Expose
private AppBelowMainColumnThumbnailsHP5 appBelowMainColumnThumbnailsHP5;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-6")
@Expose
private AppBelowMainColumnThumbnailsHP6 appBelowMainColumnThumbnailsHP6;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-7")
@Expose
private AppBelowMainColumnThumbnailsHP7 appBelowMainColumnThumbnailsHP7;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-8")
@Expose
private AppBelowMainColumnThumbnailsHP8 appBelowMainColumnThumbnailsHP8;

@SerializedName("App-Below-Main-Column-Thumbnails-HP-9")
@Expose
private AppBelowMainColumnThumbnailsHP9 appBelowMainColumnThumbnailsHP9;

public String getSession() {
    return session;
}

public void setSession(String session) {
    this.session = session;
}

public AppBelowMainColumnThumbnailsHP getAppBelowMainColumnThumbnailsHP() {
    return appBelowMainColumnThumbnailsHP;
}

public void setAppBelowMainColumnThumbnailsHP(AppBelowMainColumnThumbnailsHP appBelowMainColumnThumbnailsHP) {
    this.appBelowMainColumnThumbnailsHP = appBelowMainColumnThumbnailsHP;
}

public AppBelowMainColumnThumbnailsHP2 getAppBelowMainColumnThumbnailsHP2() {
    return appBelowMainColumnThumbnailsHP2;
}

public void setAppBelowMainColumnThumbnailsHP2(AppBelowMainColumnThumbnailsHP2 appBelowMainColumnThumbnailsHP2) {
    this.appBelowMainColumnThumbnailsHP2 = appBelowMainColumnThumbnailsHP2;
}

public AppBelowMainColumnThumbnailsHP3 getAppBelowMainColumnThumbnailsHP3() {
    return appBelowMainColumnThumbnailsHP3;
}

public void setAppBelowMainColumnThumbnailsHP3(AppBelowMainColumnThumbnailsHP3 appBelowMainColumnThumbnailsHP3) {
    this.appBelowMainColumnThumbnailsHP3 = appBelowMainColumnThumbnailsHP3;
}

public AppBelowMainColumnThumbnailsHP4 getAppBelowMainColumnThumbnailsHP4() {
    return appBelowMainColumnThumbnailsHP4;
}

public void setAppBelowMainColumnThumbnailsHP4(AppBelowMainColumnThumbnailsHP4 appBelowMainColumnThumbnailsHP4) {
    this.appBelowMainColumnThumbnailsHP4 = appBelowMainColumnThumbnailsHP4;
}

public AppBelowMainColumnThumbnailsHP5 getAppBelowMainColumnThumbnailsHP5() {
    return appBelowMainColumnThumbnailsHP5;
}

public void setAppBelowMainColumnThumbnailsHP5(AppBelowMainColumnThumbnailsHP5 appBelowMainColumnThumbnailsHP5) {
    this.appBelowMainColumnThumbnailsHP5 = appBelowMainColumnThumbnailsHP5;
}

public AppBelowMainColumnThumbnailsHP6 getAppBelowMainColumnThumbnailsHP6() {
    return appBelowMainColumnThumbnailsHP6;
}

public void setAppBelowMainColumnThumbnailsHP6(AppBelowMainColumnThumbnailsHP6 appBelowMainColumnThumbnailsHP6) {
    this.appBelowMainColumnThumbnailsHP6 = appBelowMainColumnThumbnailsHP6;
}

public AppBelowMainColumnThumbnailsHP7 getAppBelowMainColumnThumbnailsHP7() {
    return appBelowMainColumnThumbnailsHP7;
}

public void setAppBelowMainColumnThumbnailsHP7(AppBelowMainColumnThumbnailsHP7 appBelowMainColumnThumbnailsHP7) {
    this.appBelowMainColumnThumbnailsHP7 = appBelowMainColumnThumbnailsHP7;
}

public AppBelowMainColumnThumbnailsHP8 getAppBelowMainColumnThumbnailsHP8() {
    return appBelowMainColumnThumbnailsHP8;
}

public void setAppBelowMainColumnThumbnailsHP8(AppBelowMainColumnThumbnailsHP8 appBelowMainColumnThumbnailsHP8) {
    this.appBelowMainColumnThumbnailsHP8 = appBelowMainColumnThumbnailsHP8;
}

public AppBelowMainColumnThumbnailsHP9 getAppBelowMainColumnThumbnailsHP9() {
    return appBelowMainColumnThumbnailsHP9;
}

public void setAppBelowMainColumnThumbnailsHP9(AppBelowMainColumnThumbnailsHP9 appBelowMainColumnThumbnailsHP9) {
    this.appBelowMainColumnThumbnailsHP9 = appBelowMainColumnThumbnailsHP9;
}
}
int currentTaboola = 1;
        for (int i = 0; i < feedItems.size(); i++) {
            if (feedItems.get(i) instanceof TaboolaItem) {
                AbstractItem item = (AbstractItem) feedItems.get(i);
                AppBelowMainColumnThumbnailsHP taboolaResult = mGsonResults.getAppBelowMainColumnThumbnails(currentTaboola);
                mTaboolaDataSet.add(new TaboolaDataSetItem(item.getItemId(), taboolaResult));
                currentTaboola++;
            }
        }
int currentTaboola=1;
对于(int i=0;i<代码> >也许代码> JsonReader < /代码>会更好吗?你可以使用GSON。@ PSKNK我宁愿使用GSON库解析器。但是如果这是不可能的,我一定会考虑你的解决方案。@ JunaIDFaWAD我已经使用GAPWHATE了AppLeWOME BuffnLnTnNuthNavHHSP(0)的类接口之间的区别。要应用以下MainColumnThumbnailSHP9?