Java15 Record类
精华
小牛编辑
153浏览
2023-03-14
Java 14 引入了一个新的类类型Record作为预览功能,以增强不可变数据对象的创建。Java 15 进一步增强了Record类型。它仍然是一个预览功能。
-
Record 对象具有隐式构造函数,所有参数都作为字段变量。
-
Record 对象具有每个字段变量的隐式字段 getter 方法。
-
Record 对象具有针对每个字段变量的隐式字段设置器方法。
-
Record 对象隐含了 hashCode()、equals() 和 toString() 方法的实现。
-
在 Java 15 中,不能在Record中声明本地方法。
-
在 Java 15 中,记录的隐式字段不是final的,使用反射进行修改将抛出 IllegalAccessException。
Java15 Record类的示例
ApiTester.java
package cn.xnip;
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]