zoukankan      html  css  js  c++  java
  • JXL copySheet 的一个BUG

    这两天在用JXL做EXCEL导出,copySheet时总是会出现以下异常

    Java代码  收藏代码
    1. java.lang.NullPointerException  
    2.         at jxl.write.biff.WritableSheetCopier.shallowCopyCells(WritableSheetCopier.java:499) [jxl.ja  
    3. r:na]  
    4.         at jxl.write.biff.WritableSheetCopier.copySheet(WritableSheetCopier.java:239) [jxl.jar:na]  
    5.         at jxl.write.biff.WritableSheetImpl.copy(WritableSheetImpl.java:1622) [jxl.jar:na]  
    6.         at jxl.write.biff.WritableWorkbookImpl.copySheet(WritableWorkbookImpl.java:987) [jxl.jar:na]  

    今天调试了一下,发现在jxl.write.biff.WritableSheetCopier.shallowCopyCells方法中有如下代码

    Java代码  收藏代码
    1. if (c.getCellFeatures() != null & c.getCellFeatures().hasDataValidation())  
    2. {  
    3.     validatedCells.add(c);  
    4. }  

    细心的人都不难发现,代码中少写了一个&符,虽然也可以用来表示“且”的逻辑,但一个&符是没有用到短路算法的,这样就会导致不 管&前面表达式的结果是true还是flase,&符后面的表达式都会执行。在这段代码中,在c.getCellFeatures()是 null 的情况下,c.getCellFeatures().hasDataValidation()必然会报 java.lang.NullPointerException异常。

    想不到有么有名的jxl也会犯这么低级的错误。

  • 相关阅读:
    mysql 约束条件 外键 forigen key 介绍
    【洛谷P4655】Building Bridges
    【CF1139D】Steps to One
    【YbtOJ#20073】钻石守卫
    【YbtOJ#20072】相似子串
    【YbtOJ#20071】礼物购买
    【洛谷P4149】Race
    【洛谷P2059】卡牌游戏
    【CF140C】New Year Snowmen
    【GMOJ4282】平方数游戏
  • 原文地址:https://www.cnblogs.com/shihao/p/2578732.html
Copyright © 2011-2022 走看看