我一直很困惑为啥谷歌不将Gson类中的方法改为静态方法,用起来不是更方便吗?我的前同事有好多人在结合httpclient使用时都是在发送消息的类中定义了一个属性:private static Gson gson = new Gson();调用时,就直接gson.toJson(obj);这种使用方法有没有什么潜在问题?求解答啊...
走同样的路,发现不同的人生
多執行緒同時呼叫會有問題吧以下摘自Gson User Guide:
有時您需要跨自訂序列化器/反序列化器共用狀態(請參閱此討論)。您可以使用以下三種策略來實現此目的: 1.將共用狀態儲存在靜態欄位中2.將序列化器/反序列化器宣告為父類型的內部類,並使用父類型的實例欄位來儲存共享狀態 3.使用Java ThreadLocal 1和2不是執行緒安全選項,但3是。
容易出現變數共享衝突
弱弱的問一下,gson 是 json 寫錯了 還是有一種叫 gson 的語言?
我覺得可能是效率的問題,一旦寫為 static ,則一加載就在內存中了,而這無疑會降低運行速度!
一個Gson object內部可能有自訂Adapter,請參閱GsonBuilder文件
如果你只需要預設的new Gson(), 可以只用一個singleton沒有問題
new Gson()
多執行緒同時呼叫會有問題吧
以下摘自Gson User Guide:
容易出現變數共享衝突
弱弱的問一下,gson 是 json 寫錯了 還是有一種叫 gson 的語言?
我覺得可能是效率的問題,一旦寫為 static ,則一加載就在內存中了,而這無疑會降低運行速度!
一個Gson object內部可能有自訂Adapter,請參閱GsonBuilder文件
如果你只需要預設的
new Gson()
, 可以只用一個singleton沒有問題