在下面的Groovy片段取代的toString,我試圖更換兩個hashCode
和toString
方法使用Groovy元編程
String.metaClass.toString = {-> "override" }
String.metaClass.hashCode = {-> 22 }
但是當我測試它,只有更換hashCode
工作
String s = "foo"
println s.hashCode() // prints 22
println s.toString() // prints "foo"
toString
以某種方式是特例(可能出於安全原因)?
你如何知道哪些是「不允許覆蓋toString()」的類? – 2010-05-19 14:13:04
我發佈了一個新問題,希望能夠解決這些問題...... http://jira.codehaus.org/browse/GROOVY-4210 – 2010-05-19 17:05:41
謝謝蒂姆,所以我想簡短的回答是「這是一個錯誤」? – 2010-05-20 08:41:00