Je voudrais « gâter » ainsi que la méthode Groovy de la manière suivante:Comment changer le comportement du methed dans groovy en utilisant cette méthode dans métaclasse
Integer.metaClass.plus {Integer n -> delegate + n + 1}
assert 2+2 == 5
Je reçois StackOverflowException (ce qui est pas surprenant) .
Existe-t-il un moyen d'utiliser la méthode "original" plus dans la fermeture de la métaclasse?
Il semble que Groovy 1.6 est assez intelligent pour changer le délégué d'appel - (-n) pour déléguer + n et StackOverflowException est toujours levé –
hmm .. Ma version est Groovy 1.6 et Java 1.5.0_15 J'ai couru cela dans groovy console et ça a bien fonctionné sans jeter StackOverflowException J'ai couru dans groovyshell et ça s'est bien passé. Comment essayez-vous de courir au-dessus du script? –
Juste vu la réponse postée ci-dessus par Ted. Je pense que c'est beaucoup mieux et une solution générale. +1 à Ted. –