有效Java第三版的源代码已更新为使用较新的功能
那些已經閱讀了有效Java 第三版的人可能知道與該書相關的源代碼可以在GitHub上獲得 。 jbloch / efficiency-java-3e-source-code項目擁有1700多個星星,截至撰寫本文時,它已被分叉了近800次。 在有效Java的第三版中, Java的版本主要是JDK 8,涵蓋了JDK 9(有關此第三版所涵蓋內容的詳細信息,請參閱我的早期文章 )。
自有效Java第三版發布以來,JDK已添加了許多功能,并且以更快的6個月節奏來發布了許多新版本。 鑒于此,我特別感興趣的是在琥珀色專家郵件列表中看到RémiForax已將jbloch / effective-java-3e-source-code分叉到GitHub項目forax / effective-java-3e-source-code中。 “已經獲得了有效Java(第三版)的源并將其更改為使用var,切換表達式,記錄和具有類型測試模式的instanceof”。
我喜歡從“ 有效Java” (第三版)中刷新示例以使用較新功能的想法:
- 開發人員可以了解如何使用最近發布的功能來應用有效的Java實踐。
- 開發人員可以查看JDK 8/9版本與較新版本之間的差異,以了解新構造如何替換較舊的構造,從而更好地理解較新的構造。
- 在確定在特定情況下使用新結構的特定更改是否真正有助于代碼可讀性時,查看一些更改很有用。
分叉的forax / effective-java-3e-source-code ( README.md )的主頁上指出:“源代碼已更新為使用自Java 9(第三版使用的版本)以來可用的新結構。” 然后,該頁面提供了關于應用于源代碼的新構造類型的項目符號,并提供了指向每個新構造相關的JDK增強建議(JEP)的鏈接。
撰寫本文時, 提交275eef87e4661f7f1edc41f4730cecf7a1096a97是主要的關注事項。 它涵蓋對113個文件的更改。 我將在此處指出一些具體的更改,以說明所應用的更改的類型(其中一些是應用甚至在JDK 9之前可用的首選構造):
- NutritionFacts.java (第2章,第2項) 從類更改為記錄 。
- PickTwo.java (第5章,項目32)的更改演示了開關表達式 。
- CaseInsenstiveString.java (第3章,項目10)的更改演示了類型測試模式的instanceof的應用。
- WordList.java (第3章,第14項)已更改為利用局部類型推斷將var應用于變量聲明。 這些更改很多,但這是我喜歡的更改。 我不相信其他地方的某些更改(例如將int更改為var )是否有幫助。 InstrumentedSet的更改 (第4章第18項)更具吸引力。
- 更改為RecursiveTypeBound.java (第5章,項目31)演示了在for循環中使用var 。
- Copy.copy方法(第2章,第9項)已更改為接受Path實例而不是String實例,并更改為分別使用Files.newInputStream和Files.newOutputStream代替new FileInputStream和new FileOutputStream 。
結論
能夠查看與有效Java第三版相關的原始源代碼的更改,以適應新的語言結構,這對于了解新結構及其與舊結構的關系或如何替換以及確定是否存在差異非常有用。在不同情況下是可取的。
翻譯自: https://www.javacodegeeks.com/2020/02/source-code-for-effective-java-third-edition-updated-to-use-newer-features.html
總結
以上是生活随笔為你收集整理的有效Java第三版的源代码已更新为使用较新的功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为何电脑配置很高但运行软件很卡?
- 下一篇: 电脑内存占用率过高导致卡顿?