java - MapStruct:Object.class 到 Custom.class 映射

标签 java object-object-mapping mapstruct

我是 MapStruct 的新手,需要一些帮助。

我有一个 Source 类,带有一个属性

Object input;

在运行时,返回一个名为 TicketDetails 的自定义对象。

现在,在我的目标类中有一个名为

的属性
MyTicket myTicket;

其中,我需要与 TicketDetails 对象的属性进行映射。 为了更好地理解,我在下面编写了普通的 java 代码示例。

SourceClassModel sourceClassModel = new SourceClassModel();
TargetClassModel targetClassModel = new TargetClassModel();

//mapping
TicketDetails ticketDetails = (TicketDetails) sourceClassModel.getInput();
targetClassModel.setMyTicket(ticketDetails.getMyTicket);

现在,我的问题是,如何使用MapStruct实现这种情况?

最佳答案

无论是在使用的映射器上(请参阅@Mapper#uses())还是在映射器本身的非抽象方法中 - 如果它是抽象类而不是接口(interface) - 定义自己从 Object 映射到 TicketDetails:

TicketDetails asTicketDetails(Object details) {
    return (TicketDetails) details;
}

生成的用于将 SourceClassModel 转换为 TargetClassModel 的方法将调用手动编写的方法来转换 myTicket 属性。

关于java - MapStruct:Object.class 到 Custom.class 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33994644/

相关文章:

java - Maven 项目中的 MapStruct 依赖范围

java - 尝试从服务器获取响应,但仅显示 "Toast Server not responding"

javascript - 对象和数组的 ECMAScript5 深拷贝

java - 使用 MapStruct 进行嵌套映射

spring - MapStruct 映射器未在 Spring 单元测试中注入(inject)

java - 如何使用 MapStruct 映射嵌套集合?

java - AcceptThread 未返回蓝牙文件传输应用程序上的 Activity

java - 如何按索引对整数 vector 进行排序?

java - IntelliJ IDEA - 错误 : A JNI error has occurred, 请检查您的安装并重试

c# - AutoMapper 与 ValueInjecter