Java Mapstruct映射器菱形继承,方法已定义

Java Mapstruct映射器菱形继承,方法已定义,java,inheritance,java-11,mapstruct,Java,Inheritance,Java 11,Mapstruct,我有以下情况,我简化了我的实际案例,并创建了显示我的案例的最小示例: 两个空的、在本例中不相关的类,classessPhone和PhoneDto,以及映射器继承结构,TestSuperMapper,其中一个方法声明将PhoneDto映射到Phone,两个空接口TestParent1Mapper和TestParent2Mapper都在扩展testsuperapper,一个实际的映射器接口TestMapper注释为@mapper扩展了TestParent1Mapper和TestParent2Map

我有以下情况,我简化了我的实际案例,并创建了显示我的案例的最小示例:

两个空的、在本例中不相关的类,classess
Phone
PhoneDto
,以及映射器继承结构,
TestSuperMapper
,其中一个方法声明将
PhoneDto
映射到
Phone
,两个空接口
TestParent1Mapper
TestParent2Mapper
都在扩展
testsuperapper
,一个实际的映射器接口
TestMapper
注释为
@mapper
扩展了
TestParent1Mapper
TestParent2Mapper
,和
TestMapperImpl
类实现由mapstruct生成的
TestMapper
。此设置的问题在于,mapstruct生成具有以下内容的
TestMapperImpl

import javax.annotation.processing.Generated;

@Generated(...)
public class TestMapperImpl implements TestMapper {

    @Override
    public Phone map(PhoneDto phoneDto) {
        if ( phoneDto == null ) {
            return null;
        }

        Phone phone = new Phone();

        return phone;
    }

    @Override
    public Phone map(PhoneDto phoneDto) {
        if ( phoneDto == null ) {
            return null;
        }

        Phone phone = new Phone();

        return phone;
    }
}

所以它不会完成,因为方法
Phone map(PhoneDto)
声明了两次,一个是通过
TestParent1Mapper
继承路径来的,第二个是通过
TestParent2Mapper
来的。有没有可能在不改变继承结构的情况下避免这种情况?Mapstruct版本1.4.1.Final,jdk 11。实际的javac异常是
java:method-map(PhoneDto)已经在类TestMapperImpl中定义。

原来是mapstruct问题,我已经创建并发布了mapstruct,mapstruct的维护人员已经修复了它:

看起来像是mapstruct中的一个bug(类似于)。最好通过在中创建记录单来征求建议/打开错误报告。