【发布时间】:2017-02-01 11:12:15
【问题描述】:
我在 MapStruct 使用抽象类时遇到了一些问题。 我有 2 个映射器:
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
}
在全新安装时,我得到了模棱两可的方法错误。
似乎 Mapstruct 找到该方法两次,每个 Mapper 扩展同一个类一次。
我对限定符进行了一些搜索,但在使用具有相同签名的不同方法时似乎很有用。但在我的情况下,它是一样的!!
如果你有任何整数。
谢谢
编辑:
@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> {}
【问题讨论】:
-
你能展示使用你的映射器定义吗?您是在
MapperB中使用MapperA还是相反? -
@Mapper(componentModel = "cdi", uses = {MapperB.class}) @ApplicationScoped public abstract class MapperA extends AbstractMapper {} MapperB 不使用任何其他映射器。跨度>
-
为什么要在映射器上声明这些类型参数?它们在哪里使用?
标签: java class abstract mapstruct