這是本文件的舊版!
最近因為有人code沒寫好的原因,造成了Optional之亂。原始問題發生在要透過Gson對使用Guava Optional做為member的物件做deepClone時,會拋出例外:
public class ParentObject {
private Optional<ChildObject> guavaOptionalChild = Optional.absent();
// ..
}
網上已有許多針對Optional使用的討論,這裡不涉及使用的議題。
以Gson來說,可以透過TypeAdapter去解決物件轉換的問題,可以參考此
link。
本篇文章主要分享Jackson的解法。詳細程式碼可以參考
link。