Im folgenden Groovy-Schnipsel, versuche ich, die hashCode
und toString
Methoden zu ersetzen beideersetzt toString mit Groovy metaprogramming
String.metaClass.toString = {-> "override" }
String.metaClass.hashCode = {-> 22 }
Aber wenn ich es testen, nur der Ersatz von hashCode
arbeitet
String s = "foo"
println s.hashCode() // prints 22
println s.toString() // prints "foo"
Ist toString
irgendwie ein Sonderfall (möglicherweise aus Sicherheitsgründen)?
Wie Sie tun wissen, welche "Klassen, die toString() nicht überschreiben"? –
Ich habe eine neue Ausgabe gepostet, die hoffentlich die Dinge klären sollte ... http://jira.codehaus.org/browse/GROOVY-4210 –
Danke Tim, also denke ich, die kurze Antwort ist "es ist ein Fehler"? –