如何在Java中将一个对象映射到另一个对象

时间:2020-05-12 18:46:06

标签: java mapping

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

审计处理程序具有称为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的最佳方法是什么?我是否需要通过分配手动创建每个字段?解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

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

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