Java的@Serial批注
JDK可能正在使用JDK 11 : @Serial獲得另一個標準(預定義)注釋 。 JDK-8202385 [“標記與序列相關的字段和方法的注釋”]的目的是添加“某種“ SerialRelated”注釋,以促進對序列字段和方法的聲明的自動檢查。” 這種想法是為了更好地向開發人員指示與序列化相關的字段或方法的拼寫錯誤,類似于“使用java.lang.Override批注類型來指示編譯器應驗證該方法實際上被覆蓋”的方式。
Joe Darcy 最近要求對“ webrev ”(建議的代碼添加) 進行審查 。 這提供了新@Serial外觀。 當前的建議是將此注釋定義駐留在java.io包中 ,以特定的方法或字段為目標 ,并具有SOURCE 保留 。
對于@Serial的建議定義, Javadoc注釋當前提供了有關如何使用此注釋的重要詳細信息。 此Javadoc還明確指定了預期使用@Serial進行注釋的方法和字段: writeObject() , readObject() , readObjectNoData() , writeReplace() , readResolve() , ObjectStreamField []和serialVersionUID 。
建議的@Serial批注將在執行javac “ serial ” lint檢查時進行檢查。 在Darcy的電子郵件審核請求中對此進行了描述:
擬議的java.io.Serial批注類型旨在與javac的“串行” lint檢查的增強實現一起使用。 該工作將作為JDK-8202056的一部分單獨完成:“擴展串行警告以檢查與串行相關的方法的嚴重過載”。
有趣的是,該注解的名稱不一定要最終確定,盡管它似乎很可能會保留下來。 達西的電子郵件指出,還可以使用其他名稱,例如@Serialize和@SerialRelated 。
一個有趣的區別是, @Serial批注不能或不應與Externalizable接口的某些方法和某些字段一起使用(擴展Serializable ),因為這些方法和字段未在Externalizable中使用 。 在這種區別的更多細節在核心庫-dev的相關信息提供053060 , 053061 , 053064和053067 。
在@Serial ,尚未正式為JDK 11計劃@Serial批注,但考慮到JDK-8202385的最新進展,它似乎可以及時在JDK 11版本中使用 。 除了此批注對實現自定義序列化的潛在用途之外,此批注的定義還將提供另一個示例,說明如何記錄任何自定義批注以使其正確使用。
翻譯自: https://www.javacodegeeks.com/2018/05/javas-serial-annotation.html
總結
以上是生活随笔為你收集整理的Java的@Serial批注的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 批量处理 示例_Java异常处
- 下一篇: 捷途旅行者中型 SUV 将于 9 月 2