我是 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/