• [改善Java代码]break万万不可忘


    建议15:break万万不可忘

     1 public class Client {  
     2     public static void main(String[] args) {  
     3           System.out.println("2 = "+toChineseNumberCase(2));  
     4     }  
     5      
     6     //把阿拉伯数字翻译成中文大写数字  
     7     public static String toChineseNumberCase(int n) {  
     8           String chineseNumber = "";  
     9           switch (n) {  
    10           case 0:chineseNumber = "零";  
    11           break;
    12           case 1:chineseNumber = "壹";  
    13           case 2:chineseNumber = "贰";  
    14           case 3:chineseNumber = "叁";  
    15           case 4:chineseNumber = "肆";  
    16           case 5:chineseNumber = "伍";  
    17           case 6:chineseNumber = "陆";  
    18           case 7:chineseNumber = "柒";  
    19           case 8:chineseNumber = "捌";  
    20           case 9:chineseNumber = "玖";  
    21           }  
    22           return chineseNumber;  
    23     }  
    24 }

    此类问题发生得非常频繁,但也很容易发现,只要做一下单元测试(Unit Test),问题立刻就会被发现并解决掉,但如果是在一堆的case语句中,其中某一条漏掉了break关键字,特别是在单元测试覆盖率不够高的时候(为什么不够高?在大点的项目中蹲过坑、打过仗的兄弟们可能都知道,项目质量是与项目工期息息相关的,而项目工期往往不是由项目人员决定的所以如果一个项目 的单元测试覆盖率能够达到60%,你就可以笑了),也就是说分支条件可能覆盖不到的时候,那就会在生产中出现大事故了。

    记住在case语 句后面随手写上break,养成良好的习惯。

    对于此类问题,还有一个最简单的解决办法:修改IDE的警告级别,例如在Eclipse中,可以依次点击 Performaces→Java→Compiler→Errors/Warnings→Potential Programming problems,然后修改‘switch’case fall-through为Errors级别,如果你胆敢不在case语句中加入break,那Eclipse直接就报个红叉给你看,这样就可以完全避免 该问题的发生了。

  • 相关阅读:
    剑指 Offer 30. 包含min函数的栈
    剑指 Offer 35. 复杂链表的复制
    剑指 Offer 18. 删除链表的节点
    剑指 Offer 24. 反转链表
    Jmeter
    Jmeter
    Linux搭建Jenkins
    [基金项目] 青年基金写作的历程与经验(2)
    [基金项目] 青年基金写作的历程与经验(1)
    浅析mysql存储过程
  • 原文地址:https://www.cnblogs.com/DreamDrive/p/5417559.html
Copyright © 2020-2023  润新知