官术网_书友最值得收藏!

3.3 繼續前進

對于大多數類來說,將Java代碼轉換為Kotlin代碼既快速又容易。轉換后的結果與現有的Java代碼完全兼容。

如果我們想要實現值語義,數據類允許我們為EmailAddress這樣的簡單類刪除更多樣板代碼。因為數據類創建起來非常快速和容易,并且不需要維護,所以在Kotlin中比在Java中更為頻繁地使用它來定義新的值類型,例如:定義包裝了原始值的應用程序專屬“微類型”,保存計算管道的中間結果,或者將數據轉換為臨時結構,從而更輕松地編寫應用程序邏輯。

如果值類型必須保持不變性或封裝其內部表示,那么數據類就不合適了。在這種情況下,我們必須自己實現值語義。

目前,EmailAddress和Money類看起來仍然像“Java-y...Java-ish?...Java-esque?...”。在接下來的章節中,我們將探索如何用Kotlin慣用語言來使代碼更簡潔、更安全,更易于構建。第9章考察如何通過將上述兩個類中的toString方法,或Money類的equals和hashCode重構為單表達式形式,使計算函數和方法更簡潔。在第12章中,我們通過定義運算符而不是方法,使Money類在Kotlin中更易于使用。

并非所有的Java類都是值類型,流行的Java編碼風格偏愛可變對象。在第5章中,我們將看到在Java中使用可變對象的場景下,替換為使用值類型的優勢,并展示如何將代碼從操作可變對象重構為對值的轉換。

Java代碼中有很多存放靜態實用方法的類。在Kotlin中,函數和數據是頭等功能,它們不需要被聲明為類的成員。第8章探討如何將Java中的實用方法類轉換為頂層聲明。

主站蜘蛛池模板: 昭觉县| 济源市| 东乌珠穆沁旗| 达日县| 禄丰县| 平定县| 凌源市| 武宣县| 顺义区| 长治市| 林西县| 宝清县| 荥经县| 改则县| 靖州| 车险| 新宾| 宜川县| 西藏| 麻栗坡县| 临洮县| 磴口县| 博客| 永寿县| 革吉县| 田阳县| 静安区| 淮滨县| 平和县| 哈尔滨市| 泰顺县| 清水县| 菏泽市| 定南县| 霍城县| 迭部县| 乌审旗| 治县。| 安庆市| 九龙县| 论坛|