Java 15 - 记录


Java 14 引入了新的类类型记录作为预览功能,以方便创建不可变数据对象。Java 15 进一步增强了记录类型。它仍然是预览功能。

  • 记录对象具有隐式构造函数,所有参数都作为字段变量。

  • 记录对象对于每个字段变量都有隐式字段 getter 方法。

  • 记录对象对于每个字段变量都有隐式字段设置方法。

  • Record 对象具有 hashCode()、equals() 和 toString() 方法的隐式合理实现。

  • 在 Java 15 中,无法在记录中声明本机方法。

  • 在 Java 15 中,记录的隐式字段不是最终的,使用反射进行修改将抛出 IllegalAccessException。

例子

考虑以下示例 -

ApiTester.java

public class APITester {
   public static void main(String[] args) {
      StudentRecord student = new StudentRecord (1, "Julie", "Red", "VI", 12);
      System.out.println(student.id());
      System.out.println(student.name());
      System.out.println(student);
   }
}
record StudentRecord(int id, 
   String name, 
   String section, 
   String className,
   int age){}

编译并运行程序

$javac -Xlint:preview --enable-preview -source 15 APITester.java
$java --enable-preview APITester

输出

1
Julie
StudentRecord[id=1, name=Julie, section=Red, className=VI, age=12]