java - 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 的最佳方法是什么?我是否必须通过分配它们来手动创建每个字段?解决这个问题的最佳方法是什么?
解决方案
在类中使用静态方法将一个对象转换为另一个对象并调用它。
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);
}
推荐阅读
- groovy - Camel-Olingo2:元数据约束“[Nullable=true, MaxLength=16]”与文字不匹配
- sql - 删除时间戳的一部分
- excel - 将特定数据从工作簿 A(房屋代码)复制到工作簿 B
- python - 为什么 Django 在 ForeignKey 字段的名称中需要“_id”?
- azure - 无法使用 PowerShell 发布 Cosmos DB 存储过程
- gtk - [已解决]如何从标题栏获取关闭按钮小部件
- vue.js - Amplify Vue amplify-authenticator 组件不显示
- data-structures - 实现一个高效的数据结构来管理生日祝福系统
- kubernetes - 带有slurm的kubernetes,这是正确的设置吗?
- mysql - 如何将这两个 sql 合二为一