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

MapStruct:抽象类的问题

孟俊发
2023-03-14
MapperA extends AbstractMapper<U,V>
MapperB extends AbstractMapper<U,V>

MapperA使用MapperB

我在abstractmapper中有一个方法

public <T extends AbstractReference> T resolveReference(String id, @TargetType Class<T> entityClass) {
    // Some implementation
}

在清洁安装时,我得到了不明确的方法错误。

    @Mapper(componentModel = "cdi", uses = {MapperB.class}) 
    @ApplicationScoped 
    public abstract class MapperA extends AbstractMapper<U1,V1> {} 

MapperB不使用任何其他映射器。

    @Mapper(componentModel = "cdi")
    @ApplicationScoped
    public abstract class MapperB extends AbstractMapper<U2,V2> {}

共有1个答案

禄俊逸
2023-03-14

你实际上没有一种方法,你有两种方法。一个在MapperA中,另一个在MapperB中。MapStruct并不关心继承和每个方法的位置。

还有你的方法

public <T extends AbstractReference> T resolveReference(String id, @TargetType Class<T> entityClass) {
    // Some implementation
}

是一个具有相同擦除并且不依赖于abstractmapper泛型参数的泛型,这导致MapStruct的方法错误不明确。

 类似资料:
  • 我有一个抽象类,我应该在DTO中使用Mapalyt映射: 映射器将失败,错误:错误:没有名为“电池容量”的属性。 如何使这些字段成为可选字段,以便在源类中没有退出时具有默认值?

  • 我有一个通用映射器: 在编译时,它会生成以下错误:无法将属性“objects”映射到“dto”。考虑声明/实现一个映射方法:“”。 当我实现map方法时,如错误中所示,我有以下错误:不能为泛型类型变量源生成映射方法。

  • 我正努力做到以下几点: 这里的关键点是关于制造新动物的台词。

  • 我有一个子类,它声明了我的抽象超类中的所有方法,但它仍然给我一个错误,说明我的类不是抽象的。我不知道为什么会抛出这个错误。 我得到的具体错误是 PhoneBookEntry.java: 1:错误:PhoneBookEntry不是抽象的,并且不会覆盖可比中的抽象方法compareTo(Object) 我的问题代码: 还有我的子类:

  • 本文向大家介绍php中的抽象方法和抽象类,包括了php中的抽象方法和抽象类的使用技巧和注意事项,需要的朋友参考一下 1、什么是抽象方法? 我们在类里面定义的没有方法提的方法就是抽象方法。所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方法还要加一个关键字"abstract"来修饰。 例如: 2、什么是抽象类? 只要一个类里面