首页 > 解决方案 > java中如何将一个对象映射到另一个对象

问题描述

我正在实现一个组件,其中一个组件接收一条消息,它将另一条消息发送到审核组件,以便对其进行审核。

审计处理程序有一个名为 AuditObject 的模型,而我的组件有 MessageObject。这是代码:

public final class AuditObject {
    private final Long id;
    private final String studyUid;
    private final AuditPatient patient;
    ...
}

public final class MessageObject {
    private final Long id;
    private final String studyUid;
    private final PatientObject patient;
    private final String accessorName;
    ...
}

AuditPatient 和 PatientObject 具有相同的变量。

我正在尝试通过 jms 消息通过 amqp 连接发送它。我已经有 MessageGateway。所以我的代码在我这边看起来像这样。

public void send(MessageObject messageObject) {
    //translate MessageObject to AuditObject
    messageGateway.send(auditObject, endpoint);
}

将 MessageObject 转换(或映射)到 AuditObject 的最佳方法是什么?我是否必须通过分配它们来手动创建每个字段?解决这个问题的最佳方法是什么?

标签: javamapping

解决方案


在类中使用静态方法将一个对象转换为另一个对象并调用它。

class ConvertObject {
   public static AuditObject convertMessageObjectToAudioObject(MessageObject messageObject) {
     AuditObject auditObject = new AuditObject();
     auditObject.setStudyUid(messageObject.getStudyUid());
     auditObject.setPatient(messageObject.getPatient());

     return auditObject;
   }
}

public void send(MessageObject messageObject) {
    AuditObject auditObject = ConvertObject.convertMessageObjectToAudioObject(messageObject);
    messageGateway.send(auditObject, endpoint);
}

推荐阅读