目前,我的代码中出现了很多事件,其内容如下:result = new Gson().fromJson(someString, ResultContainer.class);
我应该在所有这些地方共享GSON对象吗?如果是这样,每个对象或每个类的静态(甚至可能是超类?)为每个序列化实例化GSON的新实例?
我问的主要是因为如果静态共享引用很好,那么为什么Gson对象不是静态的呢?除非用户使用奇怪的自定义序列化规则,否则上述方法几乎涵盖了希望Gson执行的操作。
目前,我的代码中出现了很多事件,其内容如下:result = new Gson().fromJson(someString, ResultContainer.class);
我应该在所有这些地方共享GSON对象吗?如果是这样,每个对象或每个类的静态(甚至可能是超类?)为每个序列化实例化GSON的新实例?
我问的主要是因为如果静态共享引用很好,那么为什么Gson对象不是静态的呢?除非用户使用奇怪的自定义序列化规则,否则上述方法几乎涵盖了希望Gson执行的操作。
在调用的Json操作的GSON实例不保持任何状态。因此,您可以自由地将多个Json序列化和反序列化操作重复使用同一个对象。
这不是单身人士,因为您可以通过GsonBuilder以不同方式对其进行配置。
共享Gson
是罚款。
您可以使用GsonBuilder
配置Gson
,因此Gson
不是单身人士。
这是我的经验,它可以分享,但我看不到任何地方在文档说,它是这样的。你可以添加一个链接吗? –
啊,自己找到了;添加了我自己的答案。 –
@AndyTurner Gson团队应该明确地将用户指南声明放入Javadoc ... – wero
它不是单身人士,因为你可以通过'GsonBuilder'对其进行不同的配置。请参阅[javadoc](https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/Gson.html#Gson())。 –