【笔记】记一次easyExcel中注解ExcelProperty映射字段赋值无效问题

背景

最近在开发一个导入excel文件解析数据并入库的功能,导入过程中出现一个BUG:后端映射实体字段pType没有被赋值,但是导入的excel源文件是有数据。

定位问题

经过debug源码发现最终创建对象并赋值使用的是net.sf.cglib.beans.BeanMap类中的create方法,BeanMap中创建实体对象并赋值使用类中字段的setter方法,其中pType字段使用的Setter方法为setpType,但是lombok.Data注解的类的字段pType的setter方法为setPType,所以导致最终没有被赋值。

解决方案

方式1:将pType字段改成projectType字段名,使用lombok.Data注解。

复制代码
  @ExcelProperty(value = "项目类型*")
    private String projectType;

方式2:手动添加pType的Setter和Getter方法。

复制代码
public String getpType() {
        return pType;
    }

    public void setpType(String pType) {
        this.pType = pType;
    }

最后

在使用@ExcelProperty注解标记字段的时候,该字段最好命名标准和规范,比如以上pType命名如果标准化为projectType可以避免此类BUG出现。

相关推荐
それども17 小时前
分库分表的事务问题 - 怎么实现事务
java·数据库·mysql
Java面试题总结17 小时前
基于 Java 的 PDF 文本水印实现方案(iText7 示例)
java·python·pdf
一只小小的芙厨17 小时前
寒假集训笔记·树上背包
c++·笔记·算法·动态规划
马猴烧酒.17 小时前
【面试八股|Java集合】Java集合常考面试题详解
java·开发语言·python·面试·八股
以卿a17 小时前
C++(继承)
开发语言·c++·算法
lly20240617 小时前
XQuery 选择和过滤
开发语言
测试工程师成长之路17 小时前
Serenity BDD 框架:Java + Selenium 全面指南(2026 最新)
java·开发语言·selenium
lang2015092817 小时前
Java JSON绑定API:JSR 367详解
java·java-ee
czxyvX17 小时前
017-AVL树(C++实现)
开发语言·数据结构·c++
eWidget18 小时前
随机森林原理:集成学习思想 —— Java 实现多棵决策树投票机制
java·数据库·随机森林·集成学习·金仓数据库