chciałbym „zepsuć” oraz metody w Groovy w następujący sposób:Jak zmienić zachowanie tego methed w Groovy stosując tę metodę w metaklasą
Integer.metaClass.plus {Integer n -> delegate + n + 1}
assert 2+2 == 5
jestem coraz StackOverflowException (co nie dziwi) .
Czy istnieje sposób na użycie metody "original" plus w zamknięciu metaclass?
Wygląda na to, że Groovy 1.6 jest na tyle sprytny, aby zmienić delegata połączenia - (-n), aby delegować + n, a wyjątek StackOverflowException wciąż jest wyświetlany –
hmm .. Moja wersja to Groovy 1.6 i Java 1.5.0_15 Uruchomiłem to w groovy konsola i wszystko działało bez rzucania żadnego StackOverflowException Pobiegłem w groovyshell i wszystko działało dobrze. Jak próbujesz uruchomić powyższy skrypt? –
Właśnie zobaczyłem odpowiedź zamieszczoną powyżej przez Teda. Myślę, że to o wiele lepsze i ogólne rozwiązanie. +1 do Teda. –