zoukankan      html  css  js  c++  java
  • Lombok @Data生成get set方法问题

    问题

    今天使用EasyExcel进行导出时,发现有个属性明明赋值了但是导出文件中没有显示出来,类大致如下

    @Data
    public class WithdrawExportDTO {
    
        private String sCloudTrade;
    
        private String sCloudTradePlatformVoucher;
    
        private String sCloudTradeOkCard;
    
        private String sCloudTradePoints;
    
        private String sCloudCashVoucher;
    }
    

    排查

    起初以为是没有赋值成功,断点调试发现在EasyExcel写入前是有值的,如下图所示

    断点进入write方法
    发现在com.alibaba.excel.write.executor.ExcelWriteAddExecutor#addJavaObjectToExcel方法中这个属性对应的列在写入时被continue掉了,如下图所示

    很明显这个条件不满足才会被continue掉,原因是beanMap中首字母变成了大写

    原因

    新建测试类,当自己生成get方法时首字母为小写

    使用cglib生成beanMap正常

    当使用Lombok时

    很显然lombok在生成nXxx这种属性时会生成为getNXxx导致cglib获取为大写类型

    解决方案

    自己生成get set方法

  • 相关阅读:
    前端杂七杂八
    用户数据分析
    hash表
    django杂七杂八
    redis事务
    CF1457D XOR-gun
    后缀数组学习笔记
    CF1439C Greedy Shopping
    P3320 [SDOI2015]寻宝游戏
    P5327 [ZJOI2019]语言
  • 原文地址:https://www.cnblogs.com/ingxx/p/14086836.html
Copyright © 2011-2022 走看看