候选JEP:记录和密封类型
馬克·賴因霍爾德(Mark Reinhold )本周在OpenJDK琥珀色開發者郵件列表上宣布了兩個新的緊密相關的候選 JDK增強提案( JEP) ,其帖子分別為“ 新候選JEP:359:記錄(預覽) ”和“ 新候選JEP:360:密封類型(預覽) 。” 這兩個候選JEP都是“ 預覽功能 ”(由JEP 12定義)。
JEP 359:記錄(預覽)
JEP 359 “摘要”指出:“使用記錄增強Java編程語言。 記錄為聲明類提供了一種緊湊的語法,這些類是淺層不可變數據的透明持有者。”
JEP 359的“動機和目標”部分說明了記錄如何使Java開發人員受益。 該部分首先指出“常見的抱怨是'Java太冗長'或具有太多的'儀式',并解釋說”一些最嚴重的違規者是只充當普通“數據載體”的類。簡單的集合。” 本節還指出,記錄的目的不只是“減少樣板”,而且“它們應易于,清晰,簡明,以聲明不可變的,行為良好的名義數據匯總。” 簡而言之,JEP 359規定的驅動目標是“ 將數據建模為數據” 。
最近提出的java.lang.Record 草案規范對記錄的特性提供了重要的見解。 JEP 359的“描述”部分的開頭段落還描述了記錄:“ 記錄是Java語言中的一種新型類型聲明。 像枚舉一樣,記錄是類的一種受限形式。 它聲明其表示形式,并提交與該表示形式匹配的API。 記錄放棄了類通常享有的自由:將API與表示分離的能力。 作為回報,記錄獲得了很大程度的簡潔性 。” JEP 359的“描述”部分中包含大量文本。
JEP 360:密封類型(預覽)
JEP 360的“摘要”部分指出:“使用密封類型增強Java編程語言。 密封類型是類或接口,它們對其他類或接口可以擴展或實現它們施加了限制。”
JEP 360的“目標”部分也很簡潔,“在與類型本身相同的維護域中,啟用類和接口以將允許的子類型限制為枚舉的類型集。”
這是的“描述”部分JEP 360 ,其提供到具體性JEP 360 。 該部分開始,“ 密封類型是根據類型聲明中指定的指導對其子類型進行限制的類型。” “說明”部分的第二段指出“密封具有兩個不同的目的”,并描述了這些目的:
“描述”部分中介紹了密封類型的其他有趣特征。 這些對我來說很突出的是:
- 使用(帶示例) sealed修飾符和permits子句。
- “除非使用non-sealed修飾符聲明,否則密封類型的抽象子類型是隱式密封的。”
- “除非使用non-sealed修飾符聲明,否則密封類型的混凝土子類型是隱式最終的。”
- “密封性與最終性一樣,由語言編譯器和JVM共同實施。 類型的密封性及其允許的子類型列表在類文件中得到了驗證,并在運行時強制執行。”
此JEP中涵蓋的與密封類型相關的其他有趣細節包括限制(可能發生的編譯器錯誤),密封類型的類形式,以及增加了支持密封類型的反射方法。
結論
JEP 359 (記錄預覽)和JEP 360 (密封類型預覽)在其文檔中相互引用。 在這兩個候選JEP之間的關系中,JEP 360指出:“密封的類型和記錄一起構成通常被稱為代數數據類型的結構 。” 記錄和密封類型是Java支持模式匹配的關鍵部分。
翻譯自: https://www.javacodegeeks.com/2019/09/candidate-jeps-records-and-sealed-types.html
總結
以上是生活随笔為你收集整理的候选JEP:记录和密封类型的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: mongodb+java_Java EE
- 下一篇: 小米14系列新机已入网 支持90W快充
