Groovy 完全兼容 Java 类,且提供增强:
1. 类的简化
自动生成 getter/setter:成员变量无需手动写访问方法。
简化构造器:支持命名参数构造器(无需定义)。
@ToString/@EqualsAndHashCode 注解:自动生成 toString/equals 方法。
@groovy.transform.ToString // 自动生成toString
class Person {
String name // 自动生成getName()/setName()
int age
}
// 命名参数构造器(Groovy 独有)
def p = new Person(name: "Tom", age: 20)
println p.name // 调用getName()
println p // 自动toString:Person(Tom, 20)
2. 运算符重载
Groovy 允许重载运算符(如 +、<<、==),通过定义特定方法实现:
class Point {
int x, y
// 重载 + 运算符
Point plus(Point other) {
new Point(x: this.x + other.x, y: this.y + other.y)
}
}
def p1 = new Point(x:1, y:2)
def p2 = new Point(x:3, y:4)
def p3 = p1 + p2 // 等价于 p1.plus(p2)
println p3.x // 4,p3.y=6
浙公网安备 33010602011771号