mapstruct的qualifiedByName怎么用
发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,这篇文章主要介绍"mapstruct的qualifiedByName怎么用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"mapstruct的qualified
千家信息网最后更新 2024年09月21日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安全错误
数据库的锁怎样保障安全
中国计算机网络技术的发展
服务器bond是啥意思
北京嘉创星科网络技术中心
sql查DB2数据库版本
数据库的管理与运用
手机能连接到电脑上的服务器吗
云派互联网科技有限公司官网
软件开发难度金字塔
图书馆数据库建设问题
项目在哪该数据库连接
上海java软件开发哪家好
知网数据库操作
电梯服务器外壳
凉山网络安全宣传标语
mywebserver数据库
中国维护网络安全的例子
服务器牌照
打印服务器连接电脑
xbox服务器连接已阻止怎么打开
北京软件开发信息有限公司
网络安全状况调查报告
问道单机服务器列表
计算机网络技术工资高不高
好当家服务器
通信与网络技术方向
深圳车配云联互联网科技有限公司
四川宜盛互联网科技有限公司
前台数据怎么存到数据库
河北省日晟网络技术有限公司
易语言远程数据库