網頁

2014年1月12日 星期日

Effective Java實作Comparator

如果集合或陣列內的物件,有1個以上不同的排序邏輯時,那該如何處理呢?尤其是當已經實現了Comparable,又不能變動原本的邏輯時,Mix會採用Comparator來處理。


2014年1月11日 星期六

Effective Java實作Comparable

當集合或陣列內的物件需要排序時,會利用Collections.sort或Arrays.sort來進行排序,通常會implement Comparable,來實現自定義排序,透過回傳值來表示排序的大小。


2014年1月10日 星期五

Effective Java實作toString()

Object class中,也定義了toString()這個方法,因此所有的class也都繼承這個方法。預設是傳回這個物件完整類別名稱,後面接一個"@",及一個不帶正副號的十六進制hash碼。


2014年1月9日 星期四

Effective Java提升Code Coverage代碼涵蓋率

雖然我們已經有了測試程式,但是如何得知是否已完整測試了主程式?,透過Code Coverage代碼涵蓋率,我們可以快速地得知,目前系統中,有多少程式中被測試過,不考量成本跟投資效益比,涵蓋率越高,代表系統如預期正常運作的面向也越廣泛。


雖然Effective Java並沒有明確指出Code Coverage代碼涵蓋率的比率,不過因為Mix採用單元測試的方式進行測試,所以還是有必要了解,測試代碼是否能夠涵蓋比較多的主代碼。

2014年1月8日 星期三

Effective Java實作hashCode()

hashCode()這個方法,也是定義在Object class中,這個是所有class的base class,因此所有的class也都繼承這個方法,預設是傳回這個物件儲存的記憶體位址編號,因為Mix覆寫了equals(),所以也應該一併覆寫hashCode(),Effective Java中推薦的實現方式如下: