首页 > 其他 > 详细

Lombok @Data生成get set方法问题

时间:2020-12-04 19:11:22      阅读:118      评论:0      收藏:0      [点我收藏+]

问题

今天使用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方法

Lombok @Data生成get set方法问题

原文:https://www.cnblogs.com/ingxx/p/14086836.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!