MapStructPlus 1.2.2 版本发布,增加枚举自动转换


当需要进行枚举转换时(例如枚举转换为编码值,或者又编码转换为枚举),可以在目标枚举添加 @AutoEnumMapper 注解, 增加该注解后,在任意类型中需要转换该枚举时都可以自动转换。

使用该注解需要注意:当前注解必须有一个可以保证唯一的字段,并在使用当前注解时,将该字段名,添加到注解提供的 value 属性中。

还有就是注解和使用注解的类,要在同一个模块中

例如:

  • 商品状态枚举(Goods
@Getter
@AllArgsConstructor
@AutoEnumMapper("state")
public enum GoodsStateEnum {
ENABLED(1, "启用"),
DISABLED(0, "禁用");

private final Integer state;
private final String desc;

}
在当前枚举中添加注解   @AutoEnumMapper,且指定唯一字段为   state
  • 商品类(Goods
@Data
@AutoMapper(target = GoodsVo.class, reverseConvertGenerate = false)
public class Goods {

private GoodsStateEnum state;

}
  • 商品VO对象(GoodsVo
@Data
public class GoodsVo {

private Integer state;

}
  • 测试类
@Test
public void enumMapTest() {
final GoodsVo goodsVo = converter.convert(goods, GoodsVo.class);
System.out.println(goodsVo);
Assert.equals(goodsVo.getState(), goods.getState().getState());

final Goods goods2 = converter.convert(goodsVo, Goods.class);
System.out.println(goods2);
Assert.equals(goods2.getState(), GoodsStateEnum.ENABLED);
}

相關推薦

2024-01-08

并强化了部分功能,使 Java 类型转换更加便捷、优雅。 MapStructPlus官网 更新日志 兼容内部类转换 示例: @Data @AutoMapper(target = Car.InnerClass.class) public class InnerClassTarget {     private String&nbs

2023-04-26

MapStructPlus 1.2.3 版本现已发布,具体更新内容如下: MapStruct 版本由 1.5.3.Final 升级为 1.5.5.Final 增加自定义 ConvertMapperAdapter 和 MapConvertMapperAdapter 类名和包名的功能,可以参考配置文档 生成的转换接口,自动接入自定义转换

2024-03-18

并强化了部分功能,使 Java 类型转换更加便捷、优雅。 MapStructPlus官网 此次迎来了一次较大版本的更新,更新日志如下: 优化复杂对象转换逻辑,占用元空间更小!性能更快! 此版本针对于复杂对象的自动转换逻辑,

2023-06-18

支持 问题描述 一段时间以来,有好几位朋友反馈过 MapStructPlus 在使用时,修改了类,启动会报错,但重新执行 mvn clean compile 又恢复了正常。 就是这么一个莫名其妙的问题,最近终于想到了原因! 原因 首先,该问题出现

2024-06-30

并强化了部分功能,使 Java 类型转换更加便捷、优雅。 MapStructPlus 官网 v1.4.3 版本已更新, 进一步优化了 IDEA 本地开发体验。 feat: ComponentModel 增加 spring-lazy 可选项,懒加载 Spring Bean,解决互相依赖的问题,并将默

2023-11-18

基于 redis 的产生特定规则的业务主键)、加密存储、数据版本校验 提供了公共属性赋值 (创建人、修改人、创建时间、修改时间、租户)、扩展类型处理等 提供了多租户统一过滤和赋值、提供了数据权限参数带入和越权校验

2023-06-14

EasyRelation 1.1.1 发布,新版本更新日志: 更新 MapStructPlus 版本 1.2.1 --> 1.2.5 添加自动关联数据功能 当想要对一个方法的结果自动关联相关数据时,可以在方法上面增加 @AutoRelation 注解, 框架会对其方法返回的结

2023-09-29

v1.2.8 (2023-9-28) ✨ 新特性 在线用户 :记录在线用户,支持强退 登录日志 :记录用户登录日志,包含登录异常 日志管理 :记录用户操作日志,系统正常异常日志 工具增强 :增加UserInfoHelper管理当前登录用户信息 权限验

2022-08-25

PhpStorm 2022.3 路线图已发布,该版本的首要任务是在多个层面上提高 IDE 的稳定性和性能,包括减少 UI 冻结、加快编辑器中的高亮显示等。 以下是该版本的主要发力点: 性能 PHP 8.2 支持 PHP 8.2 预计将于 11 月底公开发布,PhpStor

2024-07-26

oo"; 此外,该实验性功能目前存在以下限制: 无法对枚举、命名空间等类型进行转换 没有为 .ts 文件添加 .js 扩展 无法在 node_modules 中运行 TS Node.js 团队介绍了提供该功能的动机:“让用户能够执行 TypeScript 文

2023-04-24

本次正式版本更新,主要是企业微信模块增加了大量接口,包括企业互联相关接口,以及会议相关接口等,并修复了一些问题;小程序模块则主要增加了新版自定义交易组件的一些接口,修复若干bug;微信支付模块则主要是补充

2023-07-18

大家好啊,GoFrame框架今天发布了v2.5.0正式版本啦!👏👏👏👏 本次版本主要是对已有功能组件以及开发工具上的改进工作。其中,开发工具新增了gf gen ctrl命令,以规范化定义、开发API接口,增加控制器、SDK的代码生成提高开

2022-08-11

Visual Studio 2022 17.3 正式发布,新版本带来了不少微软此前承诺的新功能,如 .NET MAUI GA 工具、Azure Container 应用程序等;以及在开发者社区中建议的新功能。 Visual Studio 2022 v17.3 更新内容如下: MAUI 工作负荷 GA 生成 MAUI/Blazor C

2023-08-13

档:更新视频教程的文档链接 文档:添加 SpringBoot 最低版本的说明文档,感谢 @王帅 文档:Seata 分布式事务的相关文档,感谢 @life 文档:增加了使用gradle构建时的文档说明,感谢 @CloudPlayer 文档:增加了在Kotlin中