当前位置: 首页 > 知识库问答 >
问题:

mapStruct中接口之间的映射

吴高峰
2023-03-14

嗨,到目前为止,我已经能够在简单的类之间进行映射了。现在我必须在接口之间进行映射。假设我有两个接口,其中许多类实现了这些接口。由于我没有了解如何做,我已经映射到特定类型的接口a。现在我需要做反向映射,其中属性可能在子类中,如何在这种情况下做反向映射。我尝试了@ inheritaninverseconfigurationin标签,但没有成功。< br >如果我能得到一些代码片段来理解,而不是阅读描述,那将非常有帮助

共有1个答案

金谭三
2023-03-14

假设有两个接口

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
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);

}
 类似资料:
  • 类具有可以是两种类类型之一的属性,这就是为什么我试图创建类类型实现的接口 所以我不能使用目标实体,因为这两个类都可以使用。下面是错误堆栈:org.hibernate。AnnotationException:model.User中的未知mappedBy。登录时,引用的属性未知:model.login.user。请帮帮我

  • 以下是我的DTO: bookdto.java: BookSpecificationsDTO接口: 书目规格界面: BookSpecificationStype: ClassicBookSpecification: 所以,我的问题是我能以某种方式得到这份工作吗?在这种情况下,如果其中一个字段是接口,是否可以将bookdto.java映射到book.java?提前感谢!

  • 本文向大家介绍Java中Runnable和Callable接口之间的区别,包括了Java中Runnable和Callable接口之间的区别的使用技巧和注意事项,需要的朋友参考一下 可运行和可调用两个功能接口。实现这些接口的类设计为由另一个线程执行。 可以使用Ruunable启动线程,这是启动新线程的两种方法:一种是通过子类化Thread类,另一种是实现Runnable接口。 线程类没有可调用的构造

  • 我可以想象这样一个解决方案:一个子映射器,在这个映射器中,我用如下所示的查找重写Dto to Domain方法: 但目标在MapStruct中是必需的。也许我可以以某种方式指定整个对象作为目标?

  • 我有一个简单的Java单模块Gradle项目,其中我使用Mapstruct进行Java映射。我的如下所示: 我的源文件夹包含以下Java源代码: