原标题:Java代码质量优化的通用准则

导 语

从编程语言诞生开始,无数的先贤们就一直实践与积累着各种编程经验。这种经验不仅适用于某一门具体的语言,而且形成了一种通用的编程惯例与标准。

在这一系列文章中,我们将全面阐述代码优化的通用准则在Java世界里的应用技巧,第五讲是“如何优雅使用switch语句”。■优化前代码实例1

动动脑筋:本例代码中有哪些瑕疵,应该如何优化?

☆代码1:Before类

java 代码优化的书 java代码优化的方法和准则_java代码优化的方法和准则

■现象类别

惯例■现象描述

在switch语句中省略掉break或default语句;或者乱放default语句。■不利影响分析

在switch语句里,如果缺少跳出语句,就会出现“跨越分支”的情况。可能会有人疑问,这种问题会在单体测试时发现。然而任何人都有疏忽,如果程序逻辑判断很复杂,从单体测试到系统上线都没发现的话,这样的Bug就成了漏网之鱼。

另外,缺少default使得switch语句不完整,而乱放default语句会使得代码的可读性非常差。■检测工具或方法

1.(C)Fall Through

2.(C)Missing Switch Default

3.(C)Default Comes Last■最佳解决方案

每个case都需要break、return、throw或continue等跳出语句,而且即使我们相信代码已经覆盖掉了所有的可能分支,应当有一个分支是给default的(可以认为总共有N个分支,前N-1为case语句部分,第N个就是default部分,可类似于if-else)。另外,Default语句要位于最后一个case分支之后,这样会使代码更加优雅。

※温馨提示——如何让Eclipse对switch使用方法进行验证?

对于“跨越分支”以及“缺少default”的检测,还可修改Eclipse的IDE的警告级别来提示switch语句使用的正确性。■优化后代码

实例1优化后

☆代码2:After类

java 代码优化的书 java代码优化的方法和准则_switch语句_02

解析:

代码1第6行之后忘记了break语句,同时需要把default语句调整到所有case语句之后。

转发分享是一种美德 Java新人自学交流群:202250194返回搜狐,查看更多

责任编辑: