Bonjour à toutes et à tous:
soit une classe dont la classe est "clazz"
et deux variables de type String: "originalMethodName" et "newMethodName"
l'objectif est de renommer une méthode "originalMethodName" et de lui donner un nom supplémentaire "newMethodName"
(il ne s'agit pas de remplacer l'ancienne méthode mais de rajouter la même méthode avec un nom différent)
les codes
quelqu'un aurait une expression plus élégante qui marche avec toutes les méthodes d'instance (quelque soit leur nombre de paramètres) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // ne marche pas! je croyais pourtant clazz.metaClass."$newMethName" = clazz.metaClass.&"$originalMethName" //marchotte mais besogneux et pose problème si un argument vraiment à null clazz.metaClass."$newMethName" = { it== null? delegate."$originalMethName"():delegate."$originalMethName"(*it)}
A que merci!








Répondre avec citation
Partager