问题:
在使用EasyExcel时,能很方便的将excel文件数据读取到实体对象集合中。但是,如果在实体对象上也加了注解@Accessors(chain = true),会导致读取到实体的所有字段都为null。下面将简述EasyExcel与@Accessors(chain = true)不兼容原因。
原因:
Excel会先把每行数据解析成map, 然后再由Map转存到Bean中。使用BeanMap从Map拷贝到Bean, 需要Map 的Key与Bean的变量名一致, 并有对应的 set方法, 且set方法为 void, 才能拷贝成功。然而@Accessors(chain = true)注解会使set方法返回的不是void, 而是当前对象。所以导致文件内容不能正常读取到实体对象中。
解决办法:
去除@Accessors注解;或将chain=false;