首頁  >  問答  >  主體

java - fastjson 与 serialVersionUID 如何建立关系?

如果使用 fastjson 作为序列化方法,那么即使类实现了 Serializable 接口,其中的 serialVersionUID 似乎也没什么用。

怎么能让 serialVersionUID 起作用,用来防止将内容反序列化的时候类型不符。

伊谢尔伦伊谢尔伦2717 天前804

全部回覆(3)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-17 13:58:38

    Serializable 是針對ObjectInput(Output)Stream來使用的。實作此介面的物件都會有一個。
    serialVersionUID的常數。
    而fastJson的序列話是將一個物件「變成」一個json檔的。如果實作了Serializable 介面的話,其中會有serialVersionUID這個屬性的。
    可以在序列化的時候保存目前物件的serialVersionUID值。再此反序列話的時候檢測是否與上次儲存的值相等。這時就能判斷是不是同一個對象了。
    ——————java新手,不對輕噴

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 13:58:38

    fastjson的序列化和反序列化都不需要做特別配置,唯一的要求是,你序列化的類別符合java bean規格。

    https://github.com/alibaba/fastjson/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E...

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 13:58:38

    如果物件 equals 方法不重寫,比較結果是不相等的,比較的是記憶體位址。

    回覆
    0
  • 取消回覆