错误内容:
代码编译时使用mapstruct
转换类时出错:
java: Ambiguous mapping methods found for mapping collection element to cn.aaa.bbbb.NodeDTO:
解决办法:
@Mapper
public interface NodeMapper {
NodeMapper INSTANCES = Mappers.getMapper(NodeMapper.class);
NodeDTO toDTO(NodeParam param);
NodeDTO toDto(NodeParam param);
List<NodeDTO> toDTOList(List<NodeParam> param);
}
toDTOList
方法编译后的内部实现其实是循环调用对象的转化方式(toDTO or toDto
), 看下Converter类可以见到有2个NodeParam
对象转化成NodeDTO
对象的方法(toDTO
和toDto
),只是名字不同,但是这样一来toDTOList
方法就不知道使用哪一个了,到底是toDTO
还是toDto
呢?
所以只要将toDTO
或者toDto
随便删除一个就行了
toDTOList内部源码: