gpt4 book ai didi

java - 具有泛型的 Gson - 如何获取具有内部泛型成员的对象

转载 作者:太空宇宙 更新时间:2023-11-04 14:51:04 30 4
gpt4 key购买 nike

假设我有以下实体

public class City {
public int id;
public String name;
}

public class State<T> {
public int id;
public String name;

public T capital;
}

我对资本类型一无所知。
现在我创建两个对象并调用 toJson 和 fromJson,如下所示:

City capital = new City(1, "1");
State state = new State<City>(1, "1", capital);

Gson gson = new Gson();
String json = gson.toJson(state);
State fromJsonState = gson.fromJson(json, State.class);

我的 from 方法返回的对象是

enter image description here

其中除了大写(通用)之外的所有内容均已键入。
json序列化和反序列化后如何获得相同的对象?

最佳答案

使用参数化TypeToken构造类型并使用 Gson#fromJson(String,Type) .

Gson gson = new Gson();
String json = gson.toJson(state);
Type type = new TypeToken<State<City>>() {}.getType();
State<City> fromJsonState = gson.fromJson(json, type);

System.out.println(fromJsonState.capital.getClass().getName());

输出:

com.x.y.z.City

关于java - 具有泛型的 Gson - 如何获取具有内部泛型成员的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23770591/

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