【文件属性】:
文件名称:解决JXL调用copySheet()和importSheet()方法时报异常的jar包
文件大小:709KB
文件格式:JAR
更新时间:2020-09-20 03:45:29
jxl
Java代码
java.lang.NullPointerException
at jxl.write.biff.WritableSheetCopier.shallowCopyCells(WritableSheetCopier.java:499) [jxl.ja
r:na]
at jxl.write.biff.WritableSheetCopier.copySheet(WritableSheetCopier.java:239) [jxl.jar:na]
at jxl.write.biff.WritableSheetImpl.copy(WritableSheetImpl.java:1622) [jxl.jar:na]
at jxl.write.biff.WritableWorkbookImpl.copySheet(WritableWorkbookImpl.java:987) [jxl.jar:na]
今天调试了一下,发现在jxl.write.biff.WritableSheetCopier.shallowCopyCells方法中有如下代码
Java代码
if (c.getCellFeatures() != null & c.getCellFeatures().hasDataValidation())
{
validatedCells.add(c);
}
细心的人都不难发现,代码中少写了一个&符,虽然也可以用来表示“且”的逻辑,但一个&符是没有用到短路算法的,这样就会导致不 管&前面表达式的结果是true还是flase,&符后面的表达式都会执行。在这段代码中,在c.getCellFeatures()是 null 的情况下,c.getCellFeatures().hasDataValidation()必然会报 java.lang.NullPointerException异常。
想不到有么有名的jxl也会犯这么低级的错误。
网友评论
- 一点都没有用
- java中import jxl.sheet时还是会出现问题。。。。