在編程時遵循防錯性程序設計,可以避免很多不必要的麻煩。粵嵌Java培訓簡單聊一聊使用Java編程時的一些技巧。
1. 把字符串常量放在前面
通過把字符串常量放在比較函數(shù)equals()比較項的左側來防止偶然的 NullPointerException 從來都不是一個壞主意,把一種表達式轉換成另一種更好的表達式,并不會失去什么。只要我們的Options是真實存在的(Java 8中 Optional是對可以為空的對象進行的封裝)。
2. 不要相信早期的JDK APIs
Java剛出現(xiàn)的時候,編程一定是件很痛苦的事。那時的API仍然不夠成熟。
3. 不要相信“-1”
我知道這很偏執(zhí),Javadoc中關于 String.indexOf() 的早期描述是這樣的…“字符在字符序列中次出現(xiàn)的位置將作為結果[被返回],如果字符不存在則返回-1。”但是,也許在某個特定場合下他們將會需要另一種編碼值,如果不區(qū)分大小寫的話,otherString 就會被包含進去…此時或許可以返回 -2。
4. 避免意外的賦值
即使的程序員也可能犯這種錯誤如果你的表達式中有常量,將它放在等式左邊。這樣當你打算再添加一個=時,不容易出錯。
5. 檢查null和長度
不管什么時候你有一個集合、數(shù)組或者其他的,確保它存在并且不為空。
6. 所有的方法都用 final 聲明
除了接口(專門用于繼承)都應該是嚴格的 final。如果這樣做對你來說沒有意義,你也可以通過修改或重寫字節(jié)碼來改變類和方法,或者發(fā)送功能請求。重寫類/方法并不是一個好主意。
7. 所有的變量和參數(shù)都用 final 聲明
很多人不相信自己不會無意間重寫了某個值。希望Java能像Scala語言一樣,人們在所有地方都直接用 val 來表示變量,甚至都不考慮易變性,除非明確需要的時候他們才用 var 來聲明變量,但是這樣的機會特別少。
8. 重載的時候不要相信泛型
有時候你覺得你寫了一個超好的API,它真的是既酷炫又直觀;接著在Java培訓出現(xiàn)了一群用戶,他們只是把一切類型生搬硬套進 Object中直到那該死的編譯器停止工作,然后他們突然鏈接到了錯誤的方法,認為這一切都是你的錯(事情總是這樣)。所以說偏執(zhí)是有好處的。
9. 總是在switch語句里加上default
我們既然無法擺脫 switch ,在必要的時候我們能夠正確使用它。
10. 用大括號隔開switch的每一個case塊
在switch語句中,為所有的case都只定義了一個作用域。事實上,這些case不是真正意義上的語句,他們更像是標簽,而switch就是指向這些標簽的goto語句。這意味著變量final int j 可以被任何case訪問,不論我們是否有break。我們可以通過添加簡單的花括號為每一個case創(chuàng)建一個新的嵌套的作用域,當然不要忘了在每個 case 的語句塊加 break。
“任何可能出錯的事情,都會出錯。”使用Java編程時也是如此。Java培訓時也會強調這些編程小技巧。