我有一个带有嵌套对象的DTO,需要将其转换为列表。

这是一般的想法(在Kotlin中):

DTO(来源):

class PersonDto {
    var name: NameDto,
    var otherField: String
}

目标:

class Person {
    var name: List<Name>,
    var otherField: String
}

目标中的名称应仅包含一项:转换后的NameDto。

我知道我可以做这样的事情:
fun nameDtoToNameList(nameDto: NameDto) : List<Name> {
     // a bunch of manual code to do the conversion
}

但我想知道是否可以自动进行转换。

理想情况下,将存在一个可以使用nameDtoToName函数的解决方案,该函数将在NameMapper接口(interface)中实现。

我一直在努力弄清楚如何做到这一点,而且还没到任何地方。任何帮助将非常感激。

最佳答案

您可以在字段上指定@Mapping并将映射设置为name.get(0)

请参阅此链接以获取语法:https://mapstruct.org/documentation/dev/reference/html/#basic-mappings

08-18 15:03