Java SE 16
您可以使用JEP 395:Records功能(作为 Java SE 16 的一部分引入)以简洁的方式创建不可变类。
如果您已经浏览过上面的链接,您一定已经知道您可以简单地做到这一点
record Student(String name, String age) { }
你得到的反过来是:
- 一个
final class Student
。
- 一个规范的构造函数,其签名与标头相同,
Student(String name, String age)
.
private final
字段,name
以及age
它们对应public
的具有相同名称和返回类型的访问器方法。
- 自动创建
equals
,hashCode
和toString
方法。
演示:
学生.java
record Student(String name, String age) { }
主.java
class Main{
public static void main(String[] args) {
Student s1 = new Student("Bharat", "10 Years");
Student s2 = new Student("Arvind", "10 Years");
System.out.println(s1);
System.out.println(s1.equals(s2));
System.out.println(s1.age().equals(s2.age()));
}
}
输出:
Student[name=Bharat, age=10 Years]
false
true