Android 迭代包含其他对象实例的对象
我正在寻找一种针对特定情况的优雅解决方案。 我有一个JSON文件 在我解析它之后,我得到一个类对象,它的字段是其他对象的实例。 该类如下所示: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
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?