如何从改造中获得通用响应

时间:2016-11-11 14:29:35

标签: java android generics retrofit2

我有一个问题,我使用Retrofit2对服务器进行三次调用以检索一些jSon数据。我得到的问题是我不想为响应创建三个单独的结果类,因为除了包含jSonArray的列表数组类型之外,数据将是相同的。

e.g。 List<A> List<B>

所以我上了课

public class Response<T> {

    @SerializedName("page")
    @Expose
    private int page;

    @SerializedName("results")
    @Expose
    private List<T> results = new ArrayList<T>();

    @SerializedName("total_results")
    @Expose
    private int totalResults;

    public int getPage()
    {
        return page;
    }

    public void setPage(int page){
        this.page = page;
    }

    public List<T> getResults(){
        return results;
    }

    public void setResults(List<T> results){
        this.results = results;
    }

    public int getTotalResults(){
        return totalResults;
    }

    public void setTotalResults(int totalResults){
        this.totalResults = totalResults;
    }
}

我的问题是如何在Retrofit2中使用此类与onResponse方法?

我不能这样做:

@Override
public void onResponse(Call<Response<Movie>> call, Response<Response<Movie>> response) {
    List<Movie> movies = response.body().getResults();
}

电影只是一个带有getter和setter的类,其中的相应字段具有@SerializedName注释。

0 个答案:

没有答案