J'essaye de remplacer la fonctionnalité d'une méthode d'une instance de type java dans mon code Groovy mais j'obtiens une exception de classcast.Comment remplacer une méthode pour une instance de type java avec Groovy meta programming?
J'ai regardé le guide posté here mais je n'arrive pas à le faire fonctionner.
Puisque mon problème actuel est un peu de désordre, voici un exemple de code exécutable qui échoue avec la même erreur. Dans l'exemple, je souhaite remplacer la méthode de sous-chaîne d'une instance de la classe java.lang.String. En réalité, je veux remplacer une méthode d'une instance d'une classe qui n'a pas d'implémentation Groovy correspondante, donc la réponse à mon exemple n'est pas simplement d'utiliser une instance de chaîne Groovy. L'exemple ci-dessus échoue à la ligne 12, c'est-à-dire printf meh.toString(). L'exception est lancée
Pris: java.lang.ClassCastException: groovy.util.Proxy ne peut pas être jeté à java.lang.CharSequence à example.main (test.groovy: 12)
Donc, des idées sur ce que je fais mal ou s'il y a une autre façon de résoudre mon problème d'ajouter et/ou de surcharger des méthodes d'une instance de type java? J'utilise Groovy version 1.7.4.
Merci de votre réponse rapide et correcte! – John