在我的大多数课程中(特别是服务器资源),我倾向于按需创建
我知道
我的问题是:我应该在需要时创建新实例,还是应该创建并只使用一个实例?如果我使用一个已经使用
com.google.gson.Gson
的新实例。有时我使用默认构造函数(用于处理简单的POJOs),有时我使用更复杂的变体,这些变体使用自定义的com.google.gson.GsonBuilder
创建。我知道
Gson
是一个线程安全的类,所以没有什么可以阻止我重复使用同一个Gson
实例,而不是创建新的实例。甚至我可能会重用一个静态常量!我的问题是:我应该在需要时创建新实例,还是应该创建并只使用一个实例?如果我使用一个已经使用
GsonBuilder
创建的Gson
实例来序列化简单的POJO,则会面临什么样的性能影响,而且该实例还学会了如何解析更复杂的数据结构(注册了几个自定义序列化程序)?
Gson
实例创建是瓶颈,否则您可以为了性能而牺牲一些可读性。 - biziclopnew Gson()
或使用静态引用像JsonUtils.GSON
或单例DefaultGson.instance()
的包装。 - ŁukaszBachmanGson
对象,其中线程安全(正确性)将是一个因素。抱歉。(我不太了解Gson
,但在类似的情况下,如果有帮助,我倾向于选择单个实例解决方案。这会使事情变得简单得多。) - biziclopGsonConverterFactory
中使用了缓存版本的Gson,因此我倾向于认为这比每次创建一个新的更好。 - Richard Le Mesurier