Java Gson与泛型-如何获取具有内部泛型成员的对象
假设我有以下实体Java Gson与泛型-如何获取具有内部泛型成员的对象,java,json,generics,gson,Java,Json,Generics,Gson,假设我有以下实体 public class City { public int id; public String name; } public class State<T> { public int id; public String name; public T capital; } 公共级城市{ 公共int id; 公共字符串名称; } 公共阶级国家{ 公共int id; 公共字符串名称; 公共技术资本; } 我对资本类型一无所知。 现在我
public class City {
public int id;
public String name;
}
public class State<T> {
public int id;
public String name;
public T capital;
}
公共级城市{
公共int id;
公共字符串名称;
}
公共阶级国家{
公共int id;
公共字符串名称;
公共技术资本;
}
我对资本类型一无所知。现在我创建object并调用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);
城市首府=新城(1,“1”);
州=新州(1,“1”,首都);
Gson Gson=新的Gson();
字符串json=gson.toJson(state);
State fromJsonState=gson.fromJson(json,State.class);
from方法返回的对象是
所有内容都是键入的,但大写(通用)。在json序列化和Desiralize之后,如何获得相同的对象?使用Parameterized构造类型并使用
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