- Java到Kotlin:代碼重構指南
- (英)鄧肯·麥格雷戈 (英)納特·普萊斯
- 555字
- 2025-01-03 16:16:37
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中的實用方法類轉換為頂層聲明。
推薦閱讀
- SQL Server 2016從入門到精通(視頻教學超值版)
- 區塊鏈架構與實現:Cosmos詳解
- 學習正則表達式
- Python極簡講義:一本書入門數據分析與機器學習
- Mastering C++ Multithreading
- C語言程序設計習題與實驗指導
- 從零開始學算法:基于Python
- Java EE輕量級解決方案:S2SH
- 計算機輔助設計與繪圖技術(AutoCAD 2014教程)(第三版)
- 自己動手做智能產品:嵌入式JavaScript實現
- Unreal Engine 4 Game Development Essentials
- Expert Angular
- Java從入門到精通(第7版)
- NIO與Socket編程技術指南
- Visual C++.NET 2010開發實踐:基于C++/CLI