gpt4 book ai didi

java - Moshi 通用型适配器

转载 作者:搜寻专家 更新时间:2023-10-30 21:26:24 25 4
gpt4 key购买 nike

假设有以下代表服务器响应的参数化数据类:

public class SocketResponse<T> {
private String responseMessage;
private int responseCode;
private T entity;
}

我在运行时知道 T 是什么类型。 moshi 是否像 Gson 一样支持通用类型适配器?使用 Gson id 执行以下操作来解析它。

Type typeA = new TypeToken<SocketResponse<MyResponseA>>(){}.getType();
SocketResponse<MyResponseA> responseA = getResponse("json", typeA);

Type typeB = new TypeToken<SocketResponse<MyResponseB>>(){}.getType();
SocketResponse<MyResponseB> responseB = getResponse("json", typeB);


private String getResponse(Type t){
return gson.fromJson(response, type);
}

最佳答案

Moshi 在 Types 上使用工厂方法与 Gson 的 TypeToken API 相比,获取 Java 类型。

Type typeA = Types.newParameterizedType(SocketResponse.class, MyResponseA.class);
JsonAdapter<SocketResponse<MyResponseA>> adapter = moshi.adapter(typeA);

然后,使用 JsonAdapter 反序列化和序列化您的类型,就像 Gson 的 TypeAdapter 一样。

关于java - Moshi 通用型适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46193355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com