当前位置 : 主页 > 编程语言 > java >

如何在Java 14中使用Records类来创建可变和不可变的数据对象

来源:互联网 收集:自由互联 发布时间:2023-08-09
如何在Java 14中使用Records类来创建可变和不可变的数据对象 引言: 在Java 14之前,我们通常使用类来创建数据对象,在其中定义字段,生成getter和setter方法。这样的代码是冗长而繁琐的,

如何在Java 14中使用Records类来创建可变和不可变的数据对象

引言:
在Java 14之前,我们通常使用类来创建数据对象,在其中定义字段,生成getter和setter方法。这样的代码是冗长而繁琐的,需要大量的样板代码。Java 14引入了Records类,它提供了一种更简洁的方式来创建数据对象。Records类可以自动生成字段、构造函数、getter和equals、hashCode等方法。本文将介绍如何在Java 14中使用Records类来创建可变和不可变的数据对象,并给出相应的代码示例。

可变的数据对象:
在Java中,我们可以使用关键字"record"来创建一个Record类。这个类会自动生成字段和许多方法。我们可以使用var关键字来定义并初始化一个可变的数据对象。

下面是一个示例,展示了如何创建一个可变的Person对象:

record Person(String name, int age) {}

这个Person类有两个字段:name和age。我们可以使用以下代码来使用这个类:

var person = new Person("John", 30);
person.setName("Mike");
person.setAge(35);

在这个示例中,我们创建了一个名为person的可变对象,并设置了它的name和age字段。我们还可以使用生成的setName和setAge方法来修改这个对象的字段值。

不可变的数据对象:
要创建一个不可变的数据对象,我们只需要将Record类的字段标记为final。这样,这些字段就不能被修改。我们可以使用以下代码示例:

record Person(String name, int age) {
    public Person {
        if(age < 0) {
            throw new IllegalArgumentException("Age cannot be negative");
        }
    }
}

在这个示例中,我们为Person类添加了一个构造函数。我们使用构造函数来验证age字段的值。如果age小于0,将抛出一个异常。

这个不可变的Person对象可以使用以下代码来创建和使用:

var person = new Person("John", 30);
System.out.println(person.name());
System.out.println(person.age());

在这个示例中,我们创建了一个名为person的不可变对象,并通过调用name和age方法来获取字段的值。由于age字段是final的,所以它不能被修改。

总结:
在本文中,我们介绍了如何在Java 14中使用Records类来创建可变和不可变的数据对象。我们展示了如何创建可变和不可变的Person对象,并给出相应的代码示例。Records类提供了一种简洁的方式来创建数据对象,减少了冗长和重复的代码。它是Java 14中一个非常有用的新特性,可以提高开发效率和代码质量。大家可以尝试在自己的项目中使用Records类来创建数据对象,体验它的便捷之处。

网友评论