這是本文件的舊版!


DeepClone with Jackson

最近因為有人code沒寫好的原因,造成了Optional之亂。原始問題發生在要透過Gson對使用Guava Optional做為member的物件做deepClone時,會拋出例外:

public class ParentObject {
    private Optional<ChildObject> guavaOptionalChild = Optional.absent();
    // ..
}


  1. 網上已有許多針對Optional使用的討論,這裡不涉及使用的議題。
  2. 以Gson來說,可以透過TypeAdapter去解決物件轉換的問題,可以參考此link
  3. 本篇文章主要分享Jackson的解法。詳細程式碼可以參考link