Dón*_*nal 12 groovy metaprogramming
在下面的Groovy片段中,我尝试替换hashCode和toString方法
String.metaClass.toString = {-> "override" }
String.metaClass.hashCode = {-> 22 }
Run Code Online (Sandbox Code Playgroud)
但是当我测试它时,只能更换hashCode作品
String s = "foo"
println s.hashCode() // prints 22
println s.toString() // prints "foo"
Run Code Online (Sandbox Code Playgroud)
在toString某种程度上是一个特例(可能出于安全原因)?
| 归档时间: |
|
| 查看次数: |
2872 次 |
| 最近记录: |