java - 将对象转换为具有相同数据的另一个对象? java

标签 java paypal

我正在使用 PayPal 的 SOAP API,它有一个名为 AddressType 的具体类。

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

在我可以将我的运输信息传递给 PayPal 之前,我需要翻译我当前的地址类型的运输对象。

目前我在我的逻辑中这样做并不漂亮。

    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());

有没有更好的方法来做到这一点,我尝试了强制转换,但由于类属性和方法签名不匹配,所以这行不通。

欢迎提出任何建议。

最佳答案

您可以使用一些 bean 映射框架,例如 OrikaDozer .他们两个都很好,我已经用每个人完成了一些项目。实际上有 20 多个 bean 映射框架,但我没有全部尝试。

它们都开箱即用地自动映射源对象和目标对象的相似属性,但您可以在静态 mappings.xml 文件中或动态地使用编程 API 映射不同的属性。

它们可以做的不仅仅是简单的映射,例如将列表转换为 map 或将对象的层次结构展平为一个简单的对象等等。但我认为您现在的项目中不需要这些功能。

总的来说,使用或不使用这类框架各有利弊。和缺点。我可以告诉你,如果这些类型映射在你的代码中不常见,不要使用它们让你的项目变得复杂,像你一样手动完成它们。

祝你好运。

关于java - 将对象转换为具有相同数据的另一个对象? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35036454/

相关文章:

ajax - ajax方法中的paypal请求

winforms - 桌面支付处理应用程序 : Switching APIs from Authorize.Net to Paypal

java - 如何使用XSL动态设置属性值

java - 无法再次创建相同的文件

java - 这是在构建器对象中创建空集的最佳方法

java - 类路径中的多个 Log4j.properties 文件

PayPal 收取运费税(不仅仅是元素)

java - 以编程方式反编译 .class 文件

paypal - Authorize.Net 是否有像 PayPal Standard 这样的表单发布?

node.js - 部署在 aws 上的 NodeJs 上的 Post 函数返回错误 :502