MapStruct:Object.class到Custom.class映射

时间:2015-11-30 08:53:34

标签: 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 来实现这种情况?

1 个答案:

答案 0 :(得分:2)

在已使用的映射器(请参阅@Mapper#uses())或映射器本身的非抽象方法中 - 如果它是抽象类而不是接口 - 定义从ObjectTicketDetails的映射TicketDetails asTicketDetails(Object details) { return (TicketDetails) details; } 你自己:

SourceClassModel

生成的TargetClassModel转换为myTicket的方法将调用该手动编写的转换{{1}}属性的方法。