Dans l'extrait Groovy suivant, je tente de remplacer les deux hashCode
et toString
méthodesremplaçant toString utilisant Groovy metaprogramming
String.metaClass.toString = {-> "override" }
String.metaClass.hashCode = {-> 22 }
Mais quand je le tester, seul le remplacement des hashCode
fonctionne
String s = "foo"
println s.hashCode() // prints 22
println s.toString() // prints "foo"
Est-ce que toString
est un cas particulier (peut-être pour des raisons de sécurité)?
Comment comptez-vous savoir quelles sont les "classes qui ne permettent pas de surcharger toString()"? –
J'ai posté un nouveau numéro qui, je l'espère, devrait éclaircir les choses ... http://jira.codehaus.org/browse/GROOVY-4210 –
Merci Tim, donc je suppose que la réponse courte est "c'est un bug"? –