业务场景:
芋道框架1.8+版本的Excel导入需要实现多sheet页导入,每个sheet页的表头都不一样
问题产生:
官方文档地址:读Excel | Easy Excel (alibaba.com)
在跟着官方文档敲完代码后运行时发现,虽然不报错但是接收到的list数据size正常,可内容都是null:
虽然但是没报错,但用Object试了下也是null
我根据官方文档的导入VO类:
(@ExcelIgnoreUnannotated是导入时检索@ExcelProperty注解用的此处不影响)
)
官方的示例:
分析原因:
看了一下 官方的常见问题解释:
关键其实官方已经都举出来了:@Accessors(chain = true)
无法被Cglib
读取
但这个注解默认就是关闭的,而且我这里并没有使用@Accessors注解,原因如下
芋道的全局配置此处是打开的,也就是说Lombok 的@Getter @Setter 是以链式生成的
这是正常的@Setter生成的普通方法:
这是@Accessors(chain = true)
时,@Setter生成的链式方法:
解决方案:
方案一:
不使用Lombok的@Data @Getter @Setter 方法(),用快捷键一键生成:
方案二:
可以使用 @Getter @Setter,但是必须手动在类中显式配置@Accessors(chain = false)
总结:
其实官方文档告知了原因,但是没想到芋道的全局的配置是开启的,就反复查询了好久