mapStruct中接口之间的映射

问题描述 投票:0回答:1

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

mapstruct
1个回答
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);

}
© www.soinside.com 2019 - 2024. All rights reserved.