【笔记】记一次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出现。

相关推荐
z落落2 分钟前
C#WinForm控件实战:Panel与单选框动态创建
开发语言·c#
ptc学习者2 分钟前
python 中描述符@property property 大概的样子
开发语言·python
zmzb01034 分钟前
Python课后习题训练记录Day129
开发语言·python
终将老去的穷苦程序员9 分钟前
基于SpringBoot的餐饮管理系统
java·spring boot·后端
心之伊始10 分钟前
Spring AI Tool Calling 实战:让 Java Agent 调用本地 Bean 工具方法
java·spring boot·agent·spring ai·tool calling
张忠琳13 分钟前
【Go 1.26.4】Golang Map 深度解析
开发语言·后端·golang
Vertira13 分钟前
如何对QT开发的软件进行打包[已解决]
开发语言·qt
AI人工智能+电脑小能手15 分钟前
【大白话说Java面试题 第110题】【并发篇】第10题:CAS 存在哪些问题?
java·开发语言·面试
石一峰69923 分钟前
C 语言函数设计模式实战经验
c语言·开发语言·设计模式
sitellla30 分钟前
Pydub:用 Python 处理音频,不写废话
开发语言·python·其他·音视频