2015-11-30 3 views
1

Я новичок с MapStruct и вам нужна помощь.MapStruct: Object.class to Custom.class mapping

У меня есть класс источника, с атрибутом

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?

ответ

2

Либо на используемом картографа (см @Mapper#uses()) или в не абстрактный метод на самом картографа - в случае, если он является абстрактным классом, а не интерфейс - определить отображение из Object в TicketDetails себя:

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

Сгенерированный метод преобразования SourceClassModel в TargetClassModel затем вызовет этот вручную написанный метод преобразования свойства myTicket.

Смежные вопросы