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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM