2016-01-27 100 views
0

我正在使用PayPal的SOAP API,它具有一個名爲AddressType的具體類。將對象轉換爲具有相同數據的另一個對象? Java

https://developer.paypal.com/docs/classic/api/merchant/SetExpressCheckout_API_Operation_SOAP/

之前,我可以通過我的送貨信息,貝寶,我需要翻譯我目前的出貨對象,它是類型的地址。

目前我正在做我的邏輯裏面這不是很漂亮。

AddressType shippingAddress = new AddressType(); 
    Address input = storedOrderDetails.getShippingDetails().getShippingAddress(); 
    shippingAddress.setStreet1(input.getAddressLine1()); 
    shippingAddress.setPostalCode(input.getPostCode()); 
    shippingAddress.setCityName(input.getTown()); 
    shippingAddress.setCountryName(input.getCountryName()); 

有沒有更好的方式來做到這一點,我試圖鑄造,但由於類的屬性和方法簽名不匹配,這將無法工作。

歡迎任何建議。

回答

1

你可以去一些豆映射框架,如OrikaDozer。他們都很好,我已經爲每個人做了一些項目。實際上有超過20個bean映射框架,但我沒有嘗試所有。

它們都會自動映射源和目標對象的類似屬性,但您可以映射靜態mappings.xml文件中的不同屬性或動態使用編程API。

它們可以做的不僅僅是簡單的映射,例如將列表轉換爲映射或將對象的層次結構變爲簡單對象等等。但我認爲你現在不需要在你的項目中使用這些功能。

一般來說,使用或不使用這些類型的框架都有一些優點。和缺點。我可以告訴,如果這些類型的映射在你的代碼中不常見,不要使你的項目變得複雜,並且像你一樣手動完成它們。

祝你好運。

相關問題