【问题标题】:Does retrofit interfaces support templated callbacks改造接口是否支持模板化回调
【发布时间】:2015-06-19 03:45:04
【问题描述】:

我有一个 API,它为 gson/retrofit 解析的所有请求返回标准回复。

public class ServerReply<T> {
    @Expose
    private String status;
    @Expose
    private T data;
    @Expose
    private String message;
}

我有一个 Retrofit 接口,它将返回 serverReply 中的用户列表。

public interface Test {
    @POST("/Test")
    void runTest(@Body Body body, Callback<ServerReply<List<User>>> response);
}

我想根据正文的内容获得不同的对象列表。是否可以使用模板/泛型来完成此操作?(见下文)

public interface Test<T> {
    @POST("/Test")
    void runTest(@Body Body body, Callback<ServerReply<List<T>>> response);
}

【问题讨论】:

    标签: gson retrofit


    【解决方案1】:

    不,但这是 Java 限制,而不是缺少的改造功能。由于类型擦除,Retrofit 无法解析类型变量 T 实际上是在没有具体类的情况下传递给反序列化器的。

    【讨论】:

    • public interface SpecificService extends GenericService&lt;User&gt; { @GET("/user") User getUser(); } 有用吗?我有一些共享的抽象代码,我希望能够使用 getUser,但我不介意为使用抽象代码的特定代码再次创建服务
    猜你喜欢
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多