生成用于在类之间进行转换的代码

时间:2013-02-05 12:56:15

标签: java eclipse type-conversion

在我正在开展的一个项目中,我们有不同的系统。 由于这些系统应该独立发展,我们有许多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方法草稿并手动编辑它。

2 个答案:

答案 0 :(得分:2)

尝试Apache commons-beanutils

BeanUtils.copyProperties(p, b);

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

答案 1 :(得分:1)

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

  • 如果他们在不同的计算机或不同的进程中,请为他们设计一个有线协议,而不是序列化对象。
  • 如果它们是一起使用的类,请设计更适合它们的实体类。