我在Intellij上研究Java项目。然后我在关于不兼容类型的try catch块中出错。这是我的部分代码:
try (HSSFWorkbook workbook = new HSSFWorkbook(new POIFSFileSystem(new FileInputStream(System.getProperty("user.home") + "D:\\Users\\john\\Desktop\\RBBNCaseManagementTool\\src\\home\\data.xls")))) {
HSSFSheet filtersheet = workbook.getSheetAt(0);
int cellnum = filtersheet.getRow(0).getLastCellNum();
int lastRow = filtersheet.getLastRowNum();
HSSFCell cellVal1;
HSSFCell cellVal2;
HSSFCell cellVal3;
答案 0 :(得分:3)
尝试使用资源仅适用于标记器接口Autocloseable,如果您的类HSSFWorkbook
未实现它,则会出现此错误。
答案 1 :(得分:3)
HSSFWorkbook
类实现了Workbook
接口。
在POI 4.x中,Workbook
接口实现AutoCloseable
和Closeable
。
从3.11开始的POI 3.x中,Workbook
接口仅实现Closeable
。
(在3.11之前,Workbook
甚至没有实现Closeable
;请参见https://poi.apache.org/changes.html#3.11和https://bz.apache.org/bugzilla/show_bug.cgi?id=56537)
因此,如果要对资源使用 try 来管理HSSFWorkbook
实例,则简单的解决方案是升级到POI 4.0或更高版本。