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); }

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
官宣:新一代 Serverless 事件中间件 EventMesh 正式毕业为 Apache 顶级项目
Apache 软件基金会(ASF)孵化器于2023年2月15日,通过了 Apache EventMesh 项目的孵化毕业投票。2023年03月22日,Apache 软件基金会董事会通过了Apache EventMesh 毕业,成为 Apache 顶级项目(TLP)。 一、关于 Apache EventMesh Apache EventMesh 是一个多功能平台,它结合了事件驱动和无服务器架构,以简化复杂分布式系统中事件驱动的应用程序开发。其主要目标是使用发布-订阅模式为各种组件和应用程序启用无缝的、无服务器的事件驱动功能。EventMesh 通常被称为 "EDA plus Serverless" 和 "Eventing as Infrastructure" ,它提供了一个高度可扩展且可靠的事件基础设施,可以有效地处理大量事件流量。 EventMesh 全球首创 EDA+Serverless 填补了开源领域在 “Eventing as An Infrastructure” 的空白,是全球首个金融业进入 Apache 基金会孵化的项目,且被 Linux CNCF 基金会 Landscape...
- 下一篇
EasyRelation 1.0 发布,简单强大的数据关联框架
当开发人员需要进行关联查询时,往往需要编写大量的冗余代码来处理数据之间的关系。这不仅浪费时间和精力,还会影响项目的可维护性和可扩展性。 EasyRelation 是一个简单、高效的自动关联数据框架,可以通过一行代码,自动关联查询并填充需要的数据,对于性能影响极小,且省略了大量的冗余代码。 该框架适应于当前对象中的字段需要关联查询,并赋值到当前对象的字段中,数据来源可以是枚举、数据库、RPC 接口等等任意来源。 特点 不限制关联查询方式,需要关联的数据可以是任意来源 两级缓存支持,可自由选择使用的缓存 执行效率高,对性能影响极小 支持多条件关联和常量条件关联 快速开始 下面演示如何使用 EasyRelation 进行自动关联数据 假设有订单类(Order)和用户类(User),订单中保存了用户名,需要关联查询用户昵称。 Order @Data public class Order { private String orderId; private String username; private String nickName; } User @Dat...
相关文章
文章评论
共有0条评论来说两句吧...