问题发现:
在使用easyexcel(github.com/alibaba/eas…) 导出的时候,发现以前的实体类导出都很正常,但是现在新加的实体类不正常了,比对了发现,新加的实体类增加了@Accessor(chain = true)注解,我们的目的主要是方便我们链式调用set方法:
new UserDto()
.setUserName("")
.setAge(10)
........
.setBirthday(new Date());
导致结果:
1、无法读取到excel表格中的数据到dto属性中
原因:
easyexcel底层使用的是cglib来做反射工具包的:
com.alibaba.excel.read.listener.ModelBuildEventListener 类的第130行
BeanMap.create(resultModel).putAll(map);
最底层的是cglib的BeanMap的这个方法调用
abstract public Object put(Object bean, Object key, Object value);
解决方案:
1、去掉Accessor注解
2、等待EasyExcel的作者替换掉底层的cg
网友评论