栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

复制对象时,遇到属性名、类型不同。推荐使用mapstruct

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

复制对象时,遇到属性名、类型不同。推荐使用mapstruct

如何使用mapstruct解决复制时属性名、类型不同的问题
  • 1.引入pom包
  • 2.新建一个接口
  • 3.如何调用

1.引入pom包
        
            org.mapstruct
            mapstruct
            1.4.1.Final
        
        
        
            org.mapstruct
            mapstruct-processor
            1.4.1.Final
        
       

** 因为当在maven install时候会出现属性找不到错误。没有对生成的bean进行setter

2.新建一个接口
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;

@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN)
public interface BeanCopyUtil {
    BeanCopyUtil INSTANCE = Mappers.getMapper(BeanCopyUtil.class);

    @Mapping(target = "workcode", source = "workCode")
    @Mapping(target = "planId", source = "groupid")
    @Mapping(target = "planType", source = "kqtype")
    @Mapping(target = "onCheckTime", source = "workbegintime")
    @Mapping(target = "offCheckTime", source = "workendtime")
    @Mapping(target = "restBeginTime", source = "sleepBeginTime")
    @Mapping(target = "restEndTime", source = "sleepEndTime")
    //AttendanceSheduleEntity是目标对象。GetAllShiftsResponse是源对象
    AttendanceSheduleEntity allShiftsToAttendanceShedule(GetAllShiftsResponse getAllShiftsResponse);

}
       

注意mapper的引用包

3.如何调用
GetAllShiftsResponse x = new GetAllShiftsResponse();
AttendanceSheduleEntity attendanceSheduleEntity = BeanCopyUtil.INSTANCE.allShiftsToAttendanceShedule(x);
       

注意BeanCopyUtil.INSTANCE

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871125.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号