如果集合或陣列內的物件,有1個以上不同的排序邏輯時,那該如何處理呢?尤其是當已經實現了Comparable,又不能變動原本的邏輯時,Mix會採用Comparator來處理。
就是愛Java,提供了Java代碼範例,文章和教學,可以幫助你學習Java程式語言。
Love Java So provides Java code samples, articles and tutorials
that will help you to learn Java programming language.
2014年1月12日 星期日
2014年1月11日 星期六
Effective Java實作Comparable
當集合或陣列內的物件需要排序時,會利用Collections.sort或Arrays.sort來進行排序,通常會implement Comparable,來實現自定義排序,透過回傳值來表示排序的大小。
2014年1月10日 星期五
2014年1月9日 星期四
Effective Java提升Code Coverage代碼涵蓋率
雖然我們已經有了測試程式,但是如何得知是否已完整測試了主程式?,透過Code Coverage代碼涵蓋率,我們可以快速地得知,目前系統中,有多少程式中被測試過,不考量成本跟投資效益比,涵蓋率越高,代表系統如預期正常運作的面向也越廣泛。
雖然Effective Java並沒有明確指出Code Coverage代碼涵蓋率的比率,不過因為Mix採用單元測試的方式進行測試,所以還是有必要了解,測試代碼是否能夠涵蓋比較多的主代碼。
雖然Effective Java並沒有明確指出Code Coverage代碼涵蓋率的比率,不過因為Mix採用單元測試的方式進行測試,所以還是有必要了解,測試代碼是否能夠涵蓋比較多的主代碼。
2014年1月8日 星期三
Effective Java實作hashCode()
hashCode()這個方法,也是定義在Object class中,這個是所有class的base class,因此所有的class也都繼承這個方法,預設是傳回這個物件儲存的記憶體位址編號,因為Mix覆寫了equals(),所以也應該一併覆寫hashCode(),Effective Java中推薦的實現方式如下:
2014年1月7日 星期二
Effective Java實作equals()
equals()這個方法,定義在Object class中,這個是所有class的base class,因此所有的class都繼承這個方法,預設是比較內存位址,不過Mix需要的是商務邏輯上的比較,所以會覆寫equals()。
2014年1月6日 星期一
Effective Java單元測試TestNG
TestNG是另一種單元測試的framework,與JUnit的類似,這次Mix將使用它來撰寫測試程式,大部分所引用的class package都一樣,只差在JUnit與TestNG的字樣,可以直接用搜尋取代字串,快速替代掉,或是用IDE plugin直接轉換成測試程式碼。
2014年1月5日 星期日
Effective Java單元測試JUnit
實作了RoleImpl class,現在要開始單元測試了,或許你會覺得奇怪,才剛做好一個class而已,它並沒有商務邏輯,只有getter/setter與clone(),那是要測試什麼呢?沒錯,傳統上而言,是會等到有功能後才進行測試,甚至沒有單元測試,而是直接交付給測試人員或使用者,進行整合測試。
2014年1月3日 星期五
Effective Java實作類別
定義好了Interface之後,現在我們開始來實作類別:Role,建立一個class,implements Role,將3個屬性及clone()實作出來,單純的getter與setter,可以利用IDE工具,自動產生代碼。
2014年1月2日 星期四
2014年1月1日 星期三
Effective Java從零開始
或許你已經開始寫Java了,或許只是想要一窺這個的世界,無論是抱著何種心情來看Java,從零開始,會一種沒有負擔,沒有包袱的事,你會發現寫程式不再是枯燥乏味,孤單寂寞的一個人,而是生活中最快樂的學習之一。
訂閱:
文章 (Atom)