Java Gson:如何包含部分序列化的对象?

Java Gson:如何包含部分序列化的对象?,java,gson,Java,Gson,鉴于班级: class Container<T> { T item; String type; Map<String,String> properties; public void setItem(T _item) { item = _item; } } 这感觉效率很低。我如何解决这个问题?我不确定这是否可行。您正在混合对象创建和序列化 您可以做的是创建一个带有附加字符串参数的新构造函数,并反序列化该字符串以获取项目并自动设置它。即使使用参数化类型,这也

鉴于班级:

class Container<T> {
 T item;
 String type;
 Map<String,String> properties;

 public void setItem(T _item) {
  item = _item;
 }
}

这感觉效率很低。我如何解决这个问题?

我不确定这是否可行。您正在混合对象创建和序列化

您可以做的是创建一个带有附加字符串参数的新构造函数,并反序列化该字符串以获取项目并自动设置它。即使使用参数化类型,这也应该是可能的。这样你就有了2行代码,而不是4行

Container<Map <String, String>> t = new Container<>(<other parameters>);
Map <String, String> m = gson.fromJson(serialized, new TypeToken<Map<String,String>>(){}.getType())
t.setItem(m);
gson.toJson(t,  new TypeToken<Container<Map<String,String>>>() {}.getType());