泛型方法中的Jackson 和類型引用
在泛型方法中使用Jackson 進行序列化和反序列化時,可能會遇到類型擦除問題,導致意外行為。
考慮以下程式碼,其中測試程式方法嘗試使用通用類型參考從JSON 字串檢索通用請求物件:
當getMyObject 時會出現問題() 方法在請求物件中被呼叫:
Jackson 將泛型型別T 解釋為Object,導致在呼叫getMyObject() 方法時傳回值為LinkedHashMap。
為了解決這種歧義,有必要明確指定 T 的實際類別類型。這可以透過提供Class 物件作為TypeReference 的參數來實現:
透過引入類型變量,它是可以指示Jackson 根據指定的類型資訊反序列化JSON 對象,從而提供更精確和可預測的行為。
以上是使用帶有類型引用的 Jackson 時如何處理通用方法中的類型擦除?的詳細內容。更多資訊請關注PHP中文網其他相關文章!