gpt4 book ai didi

java - 使用基类的映射器来映射子类

转载 作者:行者123 更新时间:2023-11-30 02:00:42 26 4
gpt4 key购买 nike

我有以下类结构

class MapFromBase {
}

class MapFromChild extends MapFromBase {
}

class MapToBase {
}

class MapToChild extends MapToBase {
}

@Mapper
interface Mapper {
@Mappings(/* a lot of mappings */)
MapToBase mapBase (MapFromBase value);

MapToChild mapChild (MapFromChild value);
}

有没有办法让 mapChild 映射器对从基类继承的所有字段使用 mapBase 映射器,而无需手动复制所有映射?

最佳答案

MapStruct 有一个机制 inherit configurations 。在您的情况下,我将定义一个共享映射配置(注释为 @MapperConfig),而不是继承映射器,并将此共享配置包含在您的 @Mapping 中。然后,@MapFromChild@MapFromBase 可以使用此共享配置。这样您就可以使用组合而不是继承。

共享配置也可以通过@MapToBase@MapToChild反向继承。

如果您使用1.3Beta ,有新选项可以自动继承映射器中的所有选项(以及相反的选项)

关于java - 使用基类的映射器来映射子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52929073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com