2015-11-30 43 views
1

我是一個新手MapStruct,需要一些幫助。MapStruct:Object.class到Custom.class映射

我有一個源類,與屬性

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())或在上映射器本身非抽象方法 - 的情況下,它是一個抽象類,而不是一個接口 - 定義映射從ObjectTicketDetails自己:

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

生成的將SourceClassModel轉換爲TargetClassModel的方法將調用該手動編寫的方法來轉換myTicket屬性。