Vaadin Excel 上传器问题



我正在使用Spring Boot和Vaadin Framework开发一个Web应用程序,它假设具有处理Microsoft Excel文档的功能,将电子表格中的数据存储在自定义Java对象中,最后将它们持久化到数据库中。我正在使用Vaadin目录中的Excel上传器插件来处理此类内容。

如此附加组件的官方示例所示,它非常适合使用电子表格中的数据填充 Vaadin Grid 组件,并且可以毫无问题地正确读取它。但是,由于 ClassCastException,当我尝试将此数据存储在自定义对象中并调用此数据类型的任何方法时,我遇到了问题。引发此异常是因为程序尝试强制转换相同数据类型的对象。问题是,每当我想使用 lambda 添加 SuccessedListener 时,从 excel 文档中收集的数据都会作为通用 Object 类型的集合引用,因此需要将其强制转换为自定义对象以调用特定方法。但是,当程序运行时,我尝试通过 UI 上传 excel 文档时,会引发此异常,因为通用对象的集合在某个时刻成为自定义数据类型的集合。

这是配置 Excel 上传程序的方法:

public void configureExcelUploader() {
ExcelUploader<Person> excelUploader = new ExcelUploader<>(Person.class);
excelUploader.addSuccededListener((event, items)) -> {
List<Person> persons = (List<Person>) items;
persons.callCustomMethod();
});
Upload uploadButton = new Upload("Upload");
uploadButton.setReceiver(excelUploader);
uploadButton.addSucceededListener(excelUploader);
}

我可能会错过一些东西,或者根本不知道如何正确执行这种操作。有没有人知道在这种特殊情况下将结果存储在自定义对象中的正确方法?

我通过从 maven 依赖项中删除 DevTools 来解决这个问题,一切都运行良好。

最新更新