2011-07-14 42 views
3

我正在爲Android編寫一個API客戶端庫,並且我已經使用Simple XML反序列化這些對象,因爲它看起來像JAXB在Android上不起作用。是否可以同時使用JAXB和簡單XML?

API項目中的類具有JAXB的XML註釋。我將這些類複製到了我的Android庫中,但是更改了Simple XML的XML註釋。很顯然,這會導致同步更改的問題。

有沒有辦法讓兩者兼容,以便相同的代碼可以與JAXB和Simple XML一起使用?

回答

1

我看到的唯一解決方案是同時使用兩種註釋類型。您可以使用JAXB和SimpleXML註釋標記每個成員字段。當然,你需要一些粘合劑才能使它工作,並且讓編譯器不會抱怨不存在的註釋。爲了擺脫這種情況,您可以編寫自己的註釋庫,在每種情況下執行缺少的註釋(Android上的JAXB註釋和其他項目上的SimpleXML),執行期望的操作(無)。

+0

非常感謝您的建議!我將製作兩個獨立的庫,一個帶有假的JAXB註釋,另一個帶有僞造的SimpleXML註釋。如果我可以將它們組合到同一個庫中會更好,但是我無法弄清楚如何使用接口的源代碼無法修改的工廠模式(我不想更改XML框架庫)。關於動態加載類的想法,但類加載似乎在Java和Android之間有所不同,我不確定該策略是否適用於註釋。再次感謝! – marchica

+2

@marchica:你有沒有使用兩個獨立的假註釋庫工作?就我所知,在Android上,外部庫不可能在java。*和javax。*命名空間中實現大多數通用庫(請參閱http://code.google.com/p/android/issues/detail ?id = 13084瞭解詳情)。 如果您可以同時使用這兩個庫,那麼您可以在此發佈答案,以便我們都可以受益嗎? – alokoko

相關問題