阻止使用綁定技術(如JAXB)而不是使用經典的基於dom/sax的xml技術的一件事是,在讀取xml時,它似乎強烈地實例化了類它管理。
JAXB和類實例化
很多時候,我想從xml中讀取值並將它們設置爲已創建實例的屬性。
是否有一種簡單的方法可以告訴JAXB它必須將值應用於我所創建的類,而不是創建一個新類?
阻止使用綁定技術(如JAXB)而不是使用經典的基於dom/sax的xml技術的一件事是,在讀取xml時,它似乎強烈地實例化了類它管理。
JAXB和類實例化
很多時候,我想從xml中讀取值並將它們設置爲已創建實例的屬性。
是否有一種簡單的方法可以告訴JAXB它必須將值應用於我所創建的類,而不是創建一個新類?
將JAXB對象用作DTO。然後,您可以使用PropertyUtils.copyProperties(..)
/BeanUtils.copyProperties(..)
(來自commons-beanutils)將屬性傳輸到已經部分填充的對象。
在您的用例中,XML和現有實例(即ID屬性)之間的鏈接是什麼? –
問題是如果基於jaxb的庫想要創建實例,它們將不適用於其他框架實例化類的地方。想一想容器實例化bean的位置。或者是擺動,我經常想要保存gui組件的某些屬性,但我也想自己創建它們(或者我的ide需要這樣做)。我的想法是一個「每類」方法,我將jaxb傳遞給類(或「返回我的類的工廠」),一個xml節點,它將屬性加載到類屬性中。 – AgostinoX
我仍然試圖掌握用例。是否存在想要映射到XML的現有類,或者是否存在希望JAXB填充到的類的現有實例? –