Java MapStruct:Can't generate mapping method with no input argum

java 尝试使用maven编译项目时, MapStruct 报错:

@Mapper
public interface MedicalRecordConverter extends Mapper {
    MedicalRecordConverter  INSTANCE = Mappers.getMapper(MedicalRecordConverter.class);

    @Mappings({
//            @Mapping(source = "visitGuid", target = "visitGuid", defaultValue = "默认值")//,
//            @Mapping(target = "createUserCode", expression = "java(com.hutao.manage.test.mapstruct.MapStructUtil.getCreateUser( medicalRecord.createUserCode))")//,
//            @Mapping(target = "createUserName", expression = "java(com.hutao.manage.test.mapstruct.MapStructUtil.getCase( medicalRecord.createUserName))"),
//            @Mapping(target = "pigeonholeUserCode", defaultValue = "java(com.hutao.manage.test.mapstruct.MapStructUtil.getCase())")
    })
    PigeonholeRecord meToPige (MedicalRecord medicalRecord);
}

报错为:

Can't generate mapping method with no input arguments.
阅读 10.1k
1 个回答

得了。。。代码copy过去一看,明白了,一个是注解的@Mapper,一个是继承的Mapper

image.png

  1. 注解这个@Mapper就是注解不是一个接口,虽然语法没有报错,但是实际上使用是无效的
  2. 如果你有其他需要继承的名叫Mapper的接口,在同一源文件中有同名类的情况下应该是这样的模式,也就是有一个是加包名的

image.png

总之,如果你看了官方文档,就会发现你这种写法压根就没有

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏