在编程时遵循防错性程序设计,可以避免很多不必要的麻烦。粤嵌Java培训简单聊一聊使用Java编程时的一些技巧。
1. 把字符串常量放在前面
通过把字符串常量放在比较函数equals()比较项的左侧来防止偶然的 NullPointerException 从来都不是一个坏主意,把一种表达式转换成另一种更好的表达式,并不会失去什么。只要我们的Options是真实存在的(Java 8中 Optional是对可以为空的对象进行的封装)。
2. 不要相信早期的JDK APIs
Java刚出现的时候,编程一定是件很痛苦的事。那时的API仍然不够成熟。
3. 不要相信“-1”
我知道这很偏执,Javadoc中关于 String.indexOf() 的早期描述是这样的…“字符在字符序列中次出现的位置将作为结果[被返回],如果字符不存在则返回-1。”但是,也许在某个特定场合下他们将会需要另一种编码值,如果不区分大小写的话,otherString 就会被包含进去…此时或许可以返回 -2。
4. 避免意外的赋值
即使的程序员也可能犯这种错误如果你的表达式中有常量,将它放在等式左边。这样当你打算再添加一个=时,不容易出错。
5. 检查null和长度
不管什么时候你有一个集合、数组或者其他的,确保它存在并且不为空。
6. 所有的方法都用 final 声明
除了接口(专门用于继承)都应该是严格的 final。如果这样做对你来说没有意义,你也可以通过修改或重写字节码来改变类和方法,或者发送功能请求。重写类/方法并不是一个好主意。
7. 所有的变量和参数都用 final 声明
很多人不相信自己不会无意间重写了某个值。希望Java能像Scala语言一样,人们在所有地方都直接用 val 来表示变量,甚至都不考虑易变性,除非明确需要的时候他们才用 var 来声明变量,但是这样的机会特别少。
8. 重载的时候不要相信泛型
有时候你觉得你写了一个超好的API,它真的是既酷炫又直观;接着在Java培训出现了一群用户,他们只是把一切类型生搬硬套进 Object中直到那该死的编译器停止工作,然后他们突然链接到了错误的方法,认为这一切都是你的错(事情总是这样)。所以说偏执是有好处的。
9. 总是在switch语句里加上default
我们既然无法摆脱 switch ,在必要的时候我们能够正确使用它。
10. 用大括号隔开switch的每一个case块
在switch语句中,为所有的case都只定义了一个作用域。事实上,这些case不是真正意义上的语句,他们更像是标签,而switch就是指向这些标签的goto语句。这意味着变量final int j 可以被任何case访问,不论我们是否有break。我们可以通过添加简单的花括号为每一个case创建一个新的嵌套的作用域,当然不要忘了在每个 case 的语句块加 break。
“任何可能出错的事情,都会出错。”使用Java编程时也是如此。Java培训时也会强调这些编程小技巧。