??你可以使用Groovy實(shí)現(xiàn)操作符重載, 那么 Groovy是怎么做到的了?其實(shí)非常簡(jiǎn)單, 事實(shí)上 —每個(gè)運(yùn)算符都有一個(gè)標(biāo)準(zhǔn)的映射方法.因此, 在Java中你可以使用這些方法,對(duì)于Groovy 你 可以使用操作符或操作符對(duì)應(yīng)的方法,這兩者任意一種.
下面的表格描述了groovy中的操作符所映射到的方法:

操作符和方法的對(duì)應(yīng)
你可以通過添加映射方法來為自己的類提供操作符, 像 plus( ) 對(duì)應(yīng)+. 這里將展示一個(gè)操作符重載:
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
因?yàn)槟鉉omplexNumber類中添加了plus( ) 方法,Groovy 允許你使用 + 獲取兩個(gè)復(fù)數(shù)相加 的結(jié)果 ,輸出:5 + 3i