mapstruct的qualifiedByName怎么用
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,这篇文章主要介绍"mapstruct的qualifiedByName怎么用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"mapstruct的qualified
千家信息网最后更新 2025年11月16日mapstruct的qualifiedByName怎么用
这篇文章主要介绍"mapstruct的qualifiedByName怎么用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"mapstruct的qualifiedByName怎么用"文章能帮助大家解决问题。
可用于格式化小数位等,在po转换为vo时就已格式化小数位完成,所以不必单独再写代码处理小数位。
1 引用pom1 ,能正常使用mapstruct的注解,但不会生成Impl类
org.mapstruct mapstruct-jdk8 1.2.0.Final
引用pom2 才会生成Impl类
2 定义ConvertMapper
package com.weather.weatherexpert.common.model.mapper;import com.weather.weatherexpert.common.model.po.AreaPO;import com.weather.weatherexpert.common.model.vo.AreaVO;import org.mapstruct.MapMapping;import org.mapstruct.Mapper;import org.mapstruct.Mapping;import org.mapstruct.Named;import org.mapstruct.factory.Mappers;import java.text.DecimalFormat;/** *Title:
*Description:
* */@Mapperpublic interface ConvertMapper { ConvertMapper INSTANCE = Mappers.getMapper(ConvertMapper.class); @Mapping(source = "pm25", target = "pm25", qualifiedByName = "formatDoubleDef") AreaVO areaPO2areaVO(AreaPO areaPO); @Named("formatDoubleDef")//需要起个名字,不然报错,可以与方法名一致,当然也可以不一致 default Double formatDouble(Double source) { DecimalFormat decimalFormat = new DecimalFormat("0.00");//小数位格式化 if (source == null) { source = 0.0; } return Double.parseDouble(decimalFormat.format(source)); }}
3 定义源类和目标类
public class AreaPO { private String cityName; private Integer haveAir; private Double pm25; private String pm10Str; ............}public class AreaVO { private String cityName; private Integer haveAir; private Double pm25; private String pm25Str; private Double pm10; ...... }4 看生成的Impl类ConvertMapperImpl
package com.weather.weatherexpert.common.model.mapper;import com.weather.weatherexpert.common.model.po.AreaPO;import com.weather.weatherexpert.common.model.vo.AreaVO;public class ConvertMapperImpl implements ConvertMapper { public ConvertMapperImpl() { } public AreaVO areaPO2areaVO(AreaPO areaPO) { if (areaPO == null) { return null; } else { AreaVO areaVO = new AreaVO(); areaVO.setPm25(this.formatDouble(areaPO.getPm25())); areaVO.setCityName(areaPO.getCityName()); areaVO.setHaveAir(areaPO.getHaveAir()); return areaVO; }}5 测试
AreaPO areaPO = new AreaPO("忻州", 1, 1.256879); AreaVO areaVO = ConvertMapper.INSTANCE.areaPO2areaVO(areaPO); logger.info("JSON.toJSONString(areaVO):" + JSON.toJSONString(areaVO));输出:
JSON.toJSONString(areaVO):{"cityName":"忻州","haveAir":1,"pm25":1.26}
关于"mapstruct的qualifiedByName怎么用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
小数
小数位
格式
知识
生成
一致
方法
行业
忻州
不同
实用
代码
内容
名字
实用性
实际
文章
更多
案例
注解
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
动态公网ip有办法做服务器吗
db2查看数据库事物级别
山西共同富裕网络技术
数据库保护技术体系
蜗牛蜗牛软件开发
软件开发培训包就业
建设 人才数据库
mic阵列数据库
网络安全模式怎么没有声音
上海数据软件开发服务有哪些
网络安全icmp序号的规律
数据库中如和查询表中的日期
数据库rowid排序
c 计算机软件开发招聘信息
票房数据库技术指标
神龙辅助软件开发
桂林理工大学网络技术专业
宜兴通用软件开发价格优惠
软件开发员工转正自我鉴定
电脑服务器开机为什么那么慢
我的世界手游网易32k服务器
key数据库什么意思
北京思贝科网络技术有限公司
软件开发要学数学吗
广东app软件开发费用是多少
北京小型软件开发java
三一重工软件开发人员
mcp 串口服务器
河北手机软件开发销售价格
山西潮流软件开发价格有哪些