mapstruct的qualifiedByName怎么用
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍"mapstruct的qualifiedByName怎么用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"mapstruct的qualified
千家信息网最后更新 2026年11月04日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安全错误
数据库的锁怎样保障安全
互联网科技
河南云网互联网络科技有限公司
互联网和科技技术
国智互联网科技
新华互联网科技学院
互联网 卓越科技
上海喔噻互联网科技
互联网科技公司做什么
滨湖区互联网智能科技产品供应
华脉科技工业互联网产品
科技互联网的估值
中化能源互联网科技招聘
上海宁丞科技互联网
赶超互联网科技 微信多开
链环科技传统企业怎么转型互联网
中国互联网公司排名锤子科技
深圳互联网科技的发展
广西科技产业互联网是什么
玉溪新华互联网科技怎么选
河南商务圈互联网科技有限公司
科技互联网龙头
科技制造互联网公司
碳银互联网科技
互联网科技宣传片
互联网金融科技公司干啥的
米聚互联网科技南京有限公司排面
互联网科技扶贫时间
爱医互联网络科技
山东子淼互联网科技有限公司
求路客互联网科技电话