java.lang.Record:规范草案
建議的Java記錄的工作仍在繼續。 Brian Goetz 昨天在OpenJDK amber-spec-experts郵件列表上啟動了三個新線程,其中兩個專注于Java Records。 這兩個面向記錄的線程之一討論了Java記錄是否應支持varargs 。 另一個線程為提議的類java.lang.Record提供了初始草案規范,這是本文的主題。
提議的用于java.lang.Record類級Javadoc的第一句話當前提到該類,“這是所有Java語言記錄類的通用基類。” 此初始規范還顯示java.lang.Record被指定為public abstract class 。
在此初始java.lang.Record規范中明確聲明了三個“公共” public abstract方法: equals(Object) , hashCode()和toString() 。 所有這三種方法都標注有@Override和歸檔的{@inheritDoc}與記錄專業化的細節 。 三種方法中每種方法的Javadoc專長都包括使用@implNote標記的特定于記錄的實現說明。 類級別的Javadoc告訴我們,可以隱式創建這三個“通用”方法:“ equals(Object) , hashCode()和toString()方法的隱式聲明是從所有組件字段派生的。”
提議的類級別的Javadoc當前指出:“ 記錄類是一種固定不變的值(稱為記錄組件 )的淺層不變的透明載體。” 它還將“組件字段”描述為“與每個組件相對應的private static字段,其名稱和類型與組件的名稱和類型相同。” Javadoc聲明這些組件字段是必填字段,并添加了“與每個組件相對應的公共訪問器方法,其名稱和返回類型與該組件的名稱和返回類型相同”。 此外,Javadoc補充說,如果沒有明確表示,則“為這些成員提供隱式實現”。
擬議的Javadoc還解釋了何時可能選擇顯式指定Record構造函數或訪問器方法:“為規范構造函數或訪問器方法提供顯式聲明的主要原因是驗證構造函數參數,對可變組件執行防御性復制或規范化組組件。”
java.lang.Record規范草案為與Java Records的實現和使用有關的討論增加了具體性。 擬議的規范已經引起了有關琥珀規范專家郵件列表的討論 。 與本規范相關的討論主題包括: Records是否應禁止克隆 ; 是否在equals方法Javadoc中提及原語的裝箱;以及Record.toString()和Enum.toString() 是否應在其Javadoc中添加有關更改輸出時的警告字段被重命名。
對于一個規范的介紹和討論java.lang.Record升高了我從這一特性預期項目琥珀 。
其他資源
- java.lang.Record的規范草案
- JEP草案:Java語言的記錄(預覽)
- 2019年4月Java記錄更新
- 記錄更新 (Java數據類)(2018年4月)
翻譯自: https://www.javacodegeeks.com/2019/08/java-lang-record-draft-specification.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java.lang.Record:规范草案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 行善积德是什么意思 行善积德如何理解
- 下一篇: 除了电动汽车工厂 特斯拉也正考虑在印度建