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
记录类,它有两个属性name
和age
,并且定义了一个sayHello
方法。在定义记录类时,我们使用了简洁的语法,将属性和构造函数参数一起声明。然后我们创建了一个Person
对象,并访问了它的属性和方法。
需要注意的是,记录类是不可变的,即一旦创建了记录类的对象,就不能修改其属性值。如果需要修改记录类的属性值,需要创建一个新的对象。此外,记录类还支持自动实现equals
、hashCode
和toString
方法,使得记录类更加易于使用。
在Groovy中,还可以使用@ToString
、@EqualsAndHashCode
、@TupleConstructor
等注解来定制记录类的行为,并支持使用with
和copy
方法来修改记录类的属性。