如何解决有关不兼容类型的错误?

时间:2018-12-12 12:00:37

标签: java try-catch

我在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;

enter image description here 有什么办法可以解决这个错误?

2 个答案:

答案 0 :(得分:3)

尝试使用资源仅适用于标记器接口Autocloseable,如果您的类HSSFWorkbook未实现它,则会出现此错误。

答案 1 :(得分:3)

HSSFWorkbook类实现了Workbook接口。

在POI 4.x中,Workbook接口实现AutoCloseableCloseable

从3.11开始的POI 3.x中,Workbook接口仅实现Closeable

(在3.11之前,Workbook甚至没有实现Closeable;请参见https://poi.apache.org/changes.html#3.11https://bz.apache.org/bugzilla/show_bug.cgi?id=56537

因此,如果要对资源使用 try 来管理HSSFWorkbook实例,则简单的解决方案是升级到POI 4.0或更高版本。