如何从模型类对象设置内部类的值?

时间:2018-08-07 08:24:02

标签: android json pojo jsonschema2pojo

这是父模型类

public class StoresListModel {

@SerializedName("acf")
private Acf acf;

public Acf getAcf() {
    return acf;
}

public void setAcf(Acf acf) {
    this.acf = acf;
}

}

模型类内部的Acf类

public class Acf {

public StoreImage getStoreImage() {
    return storeImage;
}

}

在Acf内有StoreImage类

public class StoreImage {

@SerializedName("url")
private String url;

public String getUrl() {
    return url;
}

public void setUrl(String url) {
    this.url = url;
}

我想使用StoreListModel类的Reference设置StoreImage类的setUrl()的值。

目前我正在这样做

StoresListModel m = new StoresListModel();
m.getAcf().getStoreImage().setUrl("SOME_DATA");

但是我遇到了错误

.models.storesListModel.Acf.getStoreImage()' on a null object reference

请帮助我,如何实现?

2 个答案:

答案 0 :(得分:0)

这样做的时候

StoresListModel m = new StoresListModel();

您创建了一个新的StoresListModel对象,但是它的成员变量acf尚未初始化。

在下一行

m.getAcf()

将返回null,并且m.getAcf().getStoreImage()无法正常工作,因为getAcf()为null。

答案 1 :(得分:0)

您的班级

public class StoresListModel {
private Acf acf;

public Acf getAcf() {
    return acf;
}

public void setAcf(Acf acf) {
    this.acf = acf;
}

public class Acf {

    private StoreImage storeImage;

    public StoreImage getStoreImage() {
        return storeImage;
    }

    public void setStoreImage(StoreImage storeImage) {
        this.storeImage = storeImage;
    }

    public class StoreImage {

        private String url;

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }
    }
}
}

尝试一下

StoresListModel.Acf.StoreImage storeImage = new StoresListModel().new Acf().new StoreImage();

现在设置数据,

storeImage.setUrl("SOME_DATA");