0

在我正在进行的一个项目中,我们有不同的系统。由于这些系统应该独立发展,我们有许多 CommunicationLib 来处理这些系统之间的通信。CommunicationLib 对象不在任何系统内部使用,而仅用于系统之间的通信。由于许多功能需要数据检索,我经常被迫创建与 CommLib 对象相同的“本地”系统对象。我使用 Converter Utility 类将此类对象转换为 CommLib 对象。

代码可能如下所示:

public static CommLibObjX objXToCommLib(objX p) {
    CommLibObjX b = new CommLibObjX();
    b.setAddressName(p.getAddressName());
    b.setCityId(p.getCityId());
    b.setCountryId(p.getCountryId());
    b.setFieldx(p.getFieldx());
    b.setFieldy(p.getFieldy());
            [...]


    return b;
}

有没有办法自动生成这样的代码?使用 Eclipse 或其他工具?某些字段可能有不同的名称,但我想生成一个 Converter 方法草稿并手动编辑它。

4

2 回答 2

2

尝试 Apache commons-beanutils

BeanUtils.copyProperties(p, b);

对于属性名称相同的所有情况,它将属性值从源 bean 复制到目标 bean

于 2013-02-05T13:11:17.903 回答
1

如果您觉得需要自动生成源代码,那么您可能做错了什么。我认为您需要重新检查两个“系统”之间的通信设计。这些“系统”如何通信?

  • 如果它们位于不同的计算机或不同的进程中,请设计一个有线协议供它们使用,而不是序列化对象。
  • 如果它们是一起使用的类,则设计更好的实体类,它们都适合它们。
于 2013-02-05T13:13:19.647 回答