首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Retrofit响应转换为本地模型时出错

将Retrofit响应转换为本地模型时出错
EN

Stack Overflow用户
提问于 2017-12-06 00:42:39
回答 0查看 290关注 0票数 0

我正在使用Retrofit与一个基于REST的服务进行通信,在我的Android应用程序中,我有一个本地域模型。为了将我的应用程序与REST服务上的任何更改和依赖项隔离开来,我希望将从REST服务返回的对象转换为我的本地域模型。

目前,我通过将response.body()返回的对象传递给模型中相应类的构造函数来实现这一点。这对于所有的基本属性都很有效,除了像List<>这样的更复杂的对象。下面是我的类:

代码语言:javascript
复制
public abstract class MetadataAsset<T> implements Comparable<T> {

    protected Long id;
    protected String title;
    protected String description;
    protected List<String> genres;
    protected List<CastMember> cast;

    public MetadataAsset(no.external.entities.MetadataAsset metadataAsset) {
        this.id = metadataAsset.id;
        this.title = metadataAsset.title;
        this.description = metadataAsset.description;
        this.genres = metadataAsset.genres;

        this.cast = new ArrayList<>();
        if(metadataAsset.cast != null) {
            for (no.external.entities.CastMember castMember : metadataAsset.cast) {
                this.cast.add(new CastMember(castMember));
            }
        }

    }

    public Long getId() {
        return id;
    }

    public String getTitle() {
         return title;
    }

    public String getDescription() {
         return description;
    }

    public List<String> getGenres() {
         return genres;
    }

    public List<CastMember> getCast() {
         return cast;
    }
}

传递给构造函数的对象是Retrofit的response.body()返回的对象。在将此对象传递给MetadataAsset构造函数之前,我检查了强制转换列表的大小不为空,列表中的元素数量>0,并且获得了正确的元素数量,但是当我在构造函数中执行相同的测试时,列表现在为空。

看看流派列表,结果就不一样了。无论是在将对象传递给构造函数之前还是在构造函数内部,该列表都具有相同数量的元素。

这里是不是有什么我不明白的GC?当列表不在构造函数的外部时,为什么它在构造函数内是空的?

这应该是如何构建的?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47658540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档