Java代码质量优化的通用准则(第5讲)

Posted IT有得聊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java代码质量优化的通用准则(第5讲)相关的知识,希望对你有一定的参考价值。


导  语

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

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


■优化前代码
实例 1

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

代码1:Before类 


■现象类别

惯例


■现象描述

switch语句中省略掉breakdefault语句;或者乱放default语句。


■不利影响分析

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

另外,缺少default使得switch语句不完整,而乱放default语句会使得代码的可读性非常差。


■检测工具或方法

1.CFall Through

2.CMissing Switch Default

3.CDefault Comes Last


■最佳解决方案

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


温馨提示——如何让Eclipseswitch使用方法进行验证?

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


■优化后代码

实例1优化后

☆代码2After

Java代码质量优化的通用准则(第5讲)

解析:

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


以上内容节选自《Java代码与架构之完美优化——实战经典》

作者简介:

颜廷吉 北京大学软件工程硕士毕业

上海颐凡软件科技有限公司 创始人兼首席架构师

曾在日本最大的软件企业NTT DATA工作多年

曾参与开发:

日本厚生劳动省HelloWork大型国家项目(富士通)

日本国家饮料自动贩机检量大型商业项目(NTTDATA )

日本国家香烟自动贩检量二期大型商业项目( 日立)


以上是关于Java代码质量优化的通用准则(第5讲)的主要内容,如果未能解决你的问题,请参考以下文章

转载----编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议1~5)

编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)

编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)

编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议11~15)

转载--编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)

转载--编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议11~15)