Nella seguente frammento Groovy, tento di sostituire sia le hashCode
e toString
metodisostituzione toString usando Groovy metaprogramming
String.metaClass.toString = {-> "override" }
String.metaClass.hashCode = {-> 22 }
Ma quando provo fuori, la sostituzione dei soli hashCode
funziona
String s = "foo"
println s.hashCode() // prints 22
println s.toString() // prints "foo"
È toString
in qualche modo un caso speciale (probabilmente per motivi di sicurezza)?
Come ti sapere quali sono le "classi che non consentono l'override di toString()"? –
Ho pubblicato un nuovo problema che dovrebbe chiarire le cose ... http://jira.codehaus.org/browse/GROOVY-4210 –
Grazie Tim, quindi suppongo che la risposta breve sia "è un bug"? –