2017-06-12 31 views
0
  1. 我在Android中使用第三方地圖檢索的外部庫。
  2. 有一個我想通過Intent傳遞的類,所以我想讓它實現Parcelable
  3. 但是這個類來自外部庫。

在這種情況下最佳做法是什麼?將Parcelable接口添加到來自外部庫的類中

我所做的是:

  1. 創建擴展這個類的自定義類(讓我把它叫做A)並實現Parcelable
  2. 但是,當我從圖書館的網絡請求所有這些A類實例,我發現我不能將它轉換到我的自定義類對象,因爲它是從父類轉換爲子類。
  3. 因此,我添加了一個靜態方法,可以將A類中的成員變量複製到新實例化的自定義對象的成員變量中,該變量將外部庫類A字面轉換爲我的自定義類。
  4. 它確實有效,但它看起來像一種代碼味道。我該如何改進?或者它不是一種代碼味道?
+0

(但是當我從庫的網絡請求中獲得所有這些A類實例時,我發現我無法將它轉換爲自定義類對象,因爲它是從父類轉換爲子類),您可以向下投射在Java中,你有沒有試過。 –

+2

@ user7790438肯定,但是當你,我們說'A a = new A(); B b =(B)a;'(當b是A的子類時),向下投射不起作用。它只適用於'A a = new B(); B b =(B)a;'。而且我無法控制'A'類的實例化階段。在網絡請求作爲回調之後,圖書館以「ArrayList '的形式給了我。 – viz

+1

然後你不會選擇比你做的選擇。 –

回答

0

理想情況下,你在android中使用的任何pojo是可以parcelable。 如果不是,你所做的方式是一種替代方案,而不是代碼味道。 Chill

相關問題