mapStruct中接口之间的映射

时间:2017-12-05 10:07:44

标签: mapstruct

到目前为止,我可以在简单类之间进行映射。现在我必须在接口之间进行映射。 考虑我有2个接口,其中许多类实现这些接口。由于我不知道该怎么做,我已经映射到特定类型的接口A.现在我需要做反向映射,其中属性可能在子类中,在这种情况下如何进行逆映射。我试过@inheritinverseconfiguratioin标签它不起作用。
而不是阅读描述,如果我得到一些代码片段来回答理解

,将会非常有用

1 个答案:

答案 0 :(得分:0)

假设有两个接口

public interface DomainInterface { }
public interface DtoInterface { }

和实现

public class Domain1Impl implements DomainInterface { }
public class Domain2Impl implements DomainInterface { }
public class Dto1Impl implements DtoInterface { }
public class Dto2Impl implements DtoInterface { }

Mapper示例

@Mapper
public interface MyInterfaceMapper {

    default DtoInterface map(DomainInterface domain) {
        if (domain instanceof Domain1Impl) {
            return mapDomain1((Domain1Impl)state);
        }
        else if (domain instanceof Domain2Impl) {
            return mapDomain2((Domain2Impl)state);
        }

    }

    Dto1Impl mapDomain1(Domain1Impl domain);

    Dto2Impl mapDomain2(Domain2Impl domain);

}