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方法

  • 相关阅读:
    继承与 接口
    数组
    字符串加密
    类与对象
    java 方法学习
    课堂练习
    第一次课堂任务记录。整形数字相加合输出
    《大道至简》第二章 读后感
    大道至简第二章
    大道至简第一章
  • 原文地址:https://www.cnblogs.com/ingxx/p/14086836.html
Copyright © 2011-2022 走看看