我是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()
),或者在映射器本身的非抽象方法中(如果它是抽象类而不是接口),请自己定义从Object
到TicketDetails
的映射:
TicketDetails asTicketDetails(Object details) {
return (TicketDetails) details;
}
然后,生成的用于将
SourceClassModel
转换为TargetClassModel
的方法将调用该手动编写的方法来转换myTicket
属性。