En el siguiente fragmento maravilloso, yo intento de sustituir tanto los métodos hashCode
y toString
reemplazando toString usando Groovy metaprogramming
String.metaClass.toString = {-> "override" }
String.metaClass.hashCode = {-> 22 }
Pero cuando lo pruebo a cabo, sólo la sustitución de hashCode
funciona
String s = "foo"
println s.hashCode() // prints 22
println s.toString() // prints "foo"
¿Es toString
de alguna manera un caso especial (posiblemente por razones de seguridad)?
Cómo hacer que saber cuáles son las "clases que no permiten anular toString()"? –
Publiqué un nuevo problema que espero que aclare las cosas ... http://jira.codehaus.org/browse/GROOVY-4210 –
Gracias Tim, ¿así que supongo que la respuesta corta es "es un error"? –