體面編碼之Java

banq發表於2018-12-31

任何Java開發人員都需要強制閱讀 Effective Java ,並且還強烈推薦Java Concurrency in PracticeJava 8 in Action

酌情使用==和.equals()。在需要時使用後者,但在前者完全不需要時使用。

避免不必要地封裝基元型別。真正的原始型別更簡單,避免自動(非)拳擊錯誤,並且不能null。

使用valueOf獲得的BigDecimal常量。該double-accepting建構函式將構成一個準確反映該給定的值,如new BigDecimal(0.1)不併不是值0.1。

比較BigDecimal相等時要記住規模。該equals()方法考慮規模擴充套件性,而compareTo()不考慮規模擴充套件性。當使用後者時,1僅等於1.0。

最小化可見性。並非所有事情都需要公開:更喜歡預設可見性,其中私有性過於嚴格。雖然通常會考慮並最小化成員變數可見性,但是類及其方法通常會被不必要地公開 - 可能是由於IDE預設設定。

使用異常層次結構。這允許呼叫者處理特定的精確子異常,同時允許不能方便地捕獲層次結構根目錄的呼叫者。
 

相關文章