switch case正确的使用姿势——在代码之外的思考
2017-03-21 23:10
696 查看
switch case正确的使用姿势——在代码之外的思考
一个简单的switch case语句,假设meg有三个case,A、B、和C:1. 第1种写法
这种写法也在我接手的项目里出现。
String result = ""; switch (meg) { case A: //do something case A result = "A"; break; case B: //do something case B result = "B"; break; default: //do something case C result = "C"; }
看起来好像没啥问题?
2.第2种写法
String result = ""; switch (meg) { case A: //do something case A result = "A"; break; case B: //do something case B result = "B"; break; case C: //do something case C result = "C"; break; default: Log.e(TAG, "Didn't match any case!"); }
第二种写法将default用于异常数据的检查,而不是第一种作为一个case使用。对比一下,我们能够发现第二种写法的质量更高:
第二种更容易让阅读者明白这个switch有3个case,分别为A、B和C,而第一种则容易让读者混淆,他还要去看下msg定义了哪几种case。
第二种对非正常数据进行了处理,输出了日志,为debug提供了线索;而第一种则没有对非正常case进行处理,也就是埋下了一个安全隐患。试想一下某天要是这里出了问题,要查出来估计也要走点弯路。
代码之外的思考
除了会写代码,写出能跑的代码,是否能够写出健壮稳定的代码?这也是我经常思考的问题。
相关文章推荐
- 复制并正确使用csdn文章中使用“插入代码”插入的代码
- 在网页加代码强制IE8使用兼容性视图解决网页显示不正确的办法
- 正确使用STL-MAP中Erase函数 一切尽在代码中。
- 正确使用UDP广播(C++代码)
- 求人看看这个代码,有关DLL中使用回调函数的问题:回调不能返回正确值
- Log4j的isdebugEnabled的作用 从isdebugEnabled使用 思考项目中代码的效率
- 提高你的Java代码质量吧:正确使用String、StringBuffer、StringBuilder
- OpenEIM 使用云计算的正确姿势是什么?
- 在网页加代码强制IE8使用兼容性视图解决网页显示不正确的办法
- 怎么在网站中正确使用JQuery代码
- 求助:windows平台下怎么正确编译及使用faac源代码
- 正确使用UDP广播(C++代码)
- Qt5 : 使用QtDesigner的时候查看代码正确 但是编译的时候总出现 为定义的错误
- 正确使用UDP广播(C++代码)
- 正确使用StringBuffer的subsString()和length()方法,提高代码性能
- 解决使用Maven,代码正确却发生大量类文件cannot be resolved to a type的情况
- 使用Flume Log4j Appender正确的姿势
- 使用Flume Log4j Appender正确的姿势
- 提高你的Java代码质量吧:你能正确使用String、StringBuffer、StringBuilder吗