跳至主要內容

Record


Record

在Groovy 3.0及以上版本中,引入了一种新的语言特性——Record Classes(记录类),它是一种用于表示数据的类,类似于Java中的POJO(Plain Old Java Object),但具有更加简洁和方便的语法。

以下是一个Groovy中定义和使用Record Classes的示例:

record Person(String name, int age) {
    void sayHello() {
        println("Hello, my name is ${name}, and I'm ${age} years old.")
    }
}

def person = new Person("Alice", 25)
println(person.name) // 输出 "Alice"
println(person.age) // 输出 25
person.sayHello() // 输出 "Hello, my name is Alice, and I'm 25 years old."

上面的示例中,我们定义了一个Person记录类,它有两个属性nameage,并且定义了一个sayHello方法。在定义记录类时,我们使用了简洁的语法,将属性和构造函数参数一起声明。然后我们创建了一个Person对象,并访问了它的属性和方法。

需要注意的是,记录类是不可变的,即一旦创建了记录类的对象,就不能修改其属性值。如果需要修改记录类的属性值,需要创建一个新的对象。此外,记录类还支持自动实现equalshashCodetoString方法,使得记录类更加易于使用。

在Groovy中,还可以使用@ToString@EqualsAndHashCode@TupleConstructor等注解来定制记录类的行为,并支持使用withcopy方法来修改记录类的属性。

上次编辑于:
贡献者: Neil