你可以使用Groovy实现操作符重载, 那么 Groovy是怎么做到的了?其实非常简单, 事实上 —每个运算符都有一个标准的映射方法.因此, 在Java中你可以使用这些方法,对于Groovy 你 可以使用操作符或操作符对应的方法,这两者任意一种.
下面的表格描述了groovy中的操作符所映射到的方法:
你可以通过添加映射方法来为自己的类提供操作符, 像 plus( ) 对应+. 这里将展示一个操作符重载:
class ComplexNumber {
def real, imaginary
def plus(other) {
new ComplexNumber(real: real + other.real,imaginary: imaginary + other.imaginary)
}
String toString() {
"$real ${imaginary > 0 ? '+' : ''} ${imaginary}i" }
}
c1 = new ComplexNumber(real: 1, imaginary: 2)
c2 = new ComplexNumber(real: 4, imaginary: 1)
println c1 + c2
因为你ComplexNumber类中添加了plus( ) 方法,Groovy 允许你使用 + 获取两个复数相加 的结果 ,输出:5 + 3i