vorrei "rovinare" più metodo in Groovy nel seguente modo:Come cambiare il comportamento del methed in Groovy utilizza lo stesso metodo in metaclasse
Integer.metaClass.plus {Integer n -> delegate + n + 1}
assert 2+2 == 5
sto ottenendo StackOverflowException (che non è sorprendente) .
C'è un modo per utilizzare il metodo "originale" più all'interno della chiusura di meta?
Sembra che Groovy 1.6 è abbastanza intelligente da modificare la chiamata delegato - (-n) di delegare + n ed StackOverflowException è ancora gettato –
hmm .. La mia versione è Groovy 1.6 e Java 1.5.0_15 correvo che in Groovy console e funzionava bene senza lanciare StackOverflowException Ho eseguito in groovyshell e funzionava bene. Come stai cercando di eseguire lo script sopra? –
Ho appena visto la risposta postata da Ted. Penso che sia molto meglio e una soluzione generale. +1 a Ted. –