EasyExcel中读取监听器使用匿名内部类与不使用匿名内部类的区别
先说结论:如果业务不是单纯的导入,导入整个过程需要有其他业务的逻辑参与。那么建议使用匿名内部类,匿名内部类可以将监听器中处理的结果融入到Controller,完成更复杂的业务。比如说导入时需要检测到已有数据且将这些数据返回给界面 。如果在监听类和Controller不在一个类,就没办法使用类中的公共变量。就不能将数据从监听器传递给Controller(请小伙伴指点)
背景,项目上需要做一个导入的功能,将excel的数据插入到数据库。
使用easyExcel编辑完成后发现有一个功能没办法实现,即要判断excel中是否存在数据库中已有的数据,如果存在这样的数据,那么需要返回给前端给用户提示。
如果不用匿名内部类,是这样的
这里在读取数据时将重复的数据存到errorList
可是这样写,那么就没办法将这个errorList拿到contorller返回前端
那么就需要换一种写法,将监听器类放在controller的内部类中
如下
如有差错,请各位指正