建议的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:规范草案相关推荐

  1. Druid连接池源代码分析之四-java.lang.sql 规范

    总体思路: 1:首先java.lang.sql包下面提供了完整操作数据库的高度抽象接口,假如想实现操作数据库的能力实现这些接口就可以了(其中也包含了连接池),具体接口的能力看下文. 2:我们一直使用的 ...

  2. 无涯教程- Java 14 – Record类型介绍

    Java中Record类型是Java 14中的预览函数引入的,并且应作为普通的 不可变 数据类,用于在类和应用程序之间进行数据传输. 像Enum 一样,Record也是一个特殊的类输入Java.它旨在 ...

  3. java.lang.instrument.Instrumentation文档翻译

    包:java.lang.instrument Instrumentation接口 public interface Instrumentation 这个类提供了插装(Instrument)Java编程 ...

  4. exception in thread main java.lang.noclassdeffounderror wrong name

    不含包层次的HelloWorld.java public class HelloWorld{ public static void main(String[] args) { System.out.p ...

  5. JDK1.8源码(三)——java.lang.String 类

    String 类也是java.lang 包下的一个类,算是日常编码中最常用的一个类了,那么本篇博客就来详细的介绍 String 类. 1.String 类的定义 public final class ...

  6. 登录首页时报错:java.lang.IllegalArgumentException (不合法的参数异常)

    处理一个老项目,DOWN下项目并配好之后,启动没问题,但是登陆之后首页显示如下: 控制台报错如下: 严重: Servlet.service() for servlet jsp threw except ...

  7. Exception in thread http-bio-80exec-1 java.lang.OutOfMemoryError: PermGen s解决方案

    问题描述: Exception in thread ""http-bio-80"-exec-1" java.lang.OutOfMemoryError: Per ...

  8. Java开发命名规范总结

    类命名规范: 类名使用 UpperCamelCase 风格(首字母都大写),必须遵从驼峰形式. 例如: MessageUtil 抽象类命名使用 Abstract 或 Base 开头 : 异常类命名使用 ...

  9. java returnaddress_Java虚拟机规范】Java SE 7虚拟机结构

    引言 Java虚拟机可以看做是一台抽象的计算机,如同真实的计算机那样,有自己的指令集以及各种运行时内存区域.Java虚拟机与Java语言没有必然联系,它只与特定的二进制文件即Class文件关联,Cla ...

最新文章

  1. 脉冲神经网络在目标检测的首次尝试,性能堪比CNN | AAAI 2020
  2. 使用 Python 的基于边缘和基于区域的分割
  3. 关于虚函数(多态)与继承的一道搜狗笔试题
  4. JOGL   java调用openGL
  5. 算法心经:数学的应用:概率的应用
  6. (组合数学)AtCoder Grand Contest 019 F - Yes or No
  7. 手把手教你编写接口需求文档
  8. HDOJ--2089--不要62
  9. erp5 主要业务模块介绍
  10. ubuntu 16.04 编译opencv3.1,opencv多版本切换
  11. python课后作业之三科成绩总和、平均分+体脂率计算
  12. c++11新特性介绍
  13. 【C++初阶:STL —— vector】vector的介绍及使用 | 迭代器失效问题 | vector的深度剖析及模拟实现
  14. 小程序修改weiui-uploadimg的+号图标为自定义图片
  15. 二分查找-允许重复数字
  16. ERROR 1366 (HY000): Incorrect string value: '\xCA\xD6\xBB\xFA\xCA\xFD...' for column 'cname' at row
  17. Kubernetes 集群基于 Rook 的 Ceph 存储之块设备、文件系统、对象存储
  18. 【推荐】元宇宙通证MetaVerse行业发展报告游戏白皮书(共97份,400M)
  19. 南邮计算机与科学排名,南邮计算机全国排名
  20. 分享一个Hutool团队维护的Java通用工具类库

热门文章

  1. jzoj4817-square【区间RMQ,二分答案】
  2. P5431-[模板]乘法逆元2【递推】
  3. jzoj4245-er【dp,贪心】
  4. ssl1763-观光旅游【最小环,Floyd,dijkstra】
  5. 【模板】可持久化并查集
  6. codeforces1453 E. Dog Snacks
  7. 牛客练习赛 61(待补F-点分治?)
  8. Codeforces Round #657 (Div. 2)
  9. 数学推导题,NTT,快速数论变换,Wannafly-乒乓球
  10. 跟我学 Java 8 新特性之 Stream 流(二)关键知识点