鉴于课程:
class Container<T> {
T item;
String type;
Map<String,String> properties;
public void setItem(T _item) {
item = _item;
}
}
我已将item
在数据库中序列化为名称为serialized的字符串。这是Map<String,String>
。
我不知道怎么说Gson这个变量已经被序列化了。
因此,当我使用Gson时,我首先对其进行反序列化,然后将其序列化回来
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());
这感觉效率低下。我该如何解决这个问题?
答案 0 :(得分:0)
我不确定这是可能的。您正在混合对象创建和序列化。
您可以做的是创建一个带有附加String参数的新构造函数,并反序列化该字符串以获取您的项目并自动设置它。即使使用参数化类型,这也应该是可能的。这样你就有2行代码而不是4行。