Java 生成用于在类之间转换的代码
在我正在进行的一个项目中,我们有不同的系统。 由于这些系统应该独立发展,我们有许多通信lib来处理这些系统之间的通信。 CommunicationLib对象不用于任何系统内部,而仅用于系统之间的通信。 由于许多功能需要数据检索,我经常被迫创建与CommLib对象相等的“本地”系统对象。我使用Converter实用程序类将这些对象转换为CommLib对象 代码可能如下所示:Java 生成用于在类之间转换的代码,java,eclipse,type-conversion,Java,Eclipse,Type Conversion,在我正在进行的一个项目中,我们有不同的系统。 由于这些系统应该独立发展,我们有许多通信lib来处理这些系统之间的通信。 CommunicationLib对象不用于任何系统内部,而仅用于系统之间的通信。 由于许多功能需要数据检索,我经常被迫创建与CommLib对象相等的“本地”系统对象。我使用Converter实用程序类将这些对象转换为CommLib对象 代码可能如下所示: public static CommLibObjX objXToCommLib(objX p) { CommLibO
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或其他工具?某些字段可能有不同的名称,但我想生成一个转换器方法草稿并手动编辑它 试试Apache commons beanutils
BeanUtils.copyProperties(p, b);
对于属性名称相同的所有情况,它都将属性值从源bean复制到目标bean
BeanUtils.copyProperties(p, b);
对于属性名称相同的所有情况,它都将属性值从源bean复制到目标bean如果您觉得需要自动生成源代码,则可能是您做错了什么。我认为你需要重新审视两个“系统”之间的通信设计。这些“系统”如何沟通
- 如果它们在不同的计算机上或处于不同的进程中,请为它们设计一个有线协议以供使用,而不是序列化对象
- 如果它们是一起使用的类,则设计更好的实体类,这两个类都适用
- 如果它们在不同的计算机上或处于不同的进程中,请为它们设计一个有线协议以供使用,而不是序列化对象
- 如果它们是一起使用的类,则设计更好的实体类,这两个类都适用