假如B類繼承A類,數據中有B類,把B類轉Data後存入,再取出。由於Model聲明的類型是A,那轉出來的也是A類型,這樣數據就丟失了一部分。 或者存入的是範型集合數據,存入再取出也會發生類型擦除。 原因在於對類對象進行序列化和反序列化時,很多第三方庫只是單純以Model聲明的類型為準,沒有處理類型擦 ...
假如B類繼承A類,數據中有B類,把B類轉Data後存入,再取出。由於Model聲明的類型是A,那轉出來的也是A類型,這樣數據就丟失了一部分。
或者存入的是範型集合數據,存入再取出也會發生類型擦除。
原因在於對類對象進行序列化和反序列化時,很多第三方庫只是單純以Model聲明的類型為準,沒有處理類型擦除問題。
解決問題當然很簡單,只要把真實的類類型也保存進去就可以了。類似Gson藉助TypeToken獲取真實類型。
這裡做個筆記免得以後踩這個坑。