加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用Groovy元编程替换toString

发布时间:2020-12-14 16:34:27 所属栏目:大数据 来源:网络整理
导读:在下面的Groovy代码片段中,我尝试替换hashCode和toString方法 String.metaClass.toString = {- "override" }String.metaClass.hashCode = {- 22 } 但是当我测试它,只有替换hashCode工作 String s = "foo"println s.hashCode() // prints 22println s.toStrin
在下面的Groovy代码片段中,我尝试替换hashCode和toString方法

String.metaClass.toString = {-> "override" }
String.metaClass.hashCode = {-> 22 }

但是当我测试它,只有替换hashCode工作

String s = "foo"
println s.hashCode()  // prints 22
println s.toString()  // prints "foo"

是tostring某种特殊情况(可能出于安全原因)?

解决方法

看到第一个注释 on this issue.它说关于String的toString和其他String相关的类:

(…) seems to be intent,it is probably a good idea to have a faster invocation for classes that don’t allow overriding toString().

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读