Groovy对象ID
问题描述:
我有一个基本的常规问题。Groovy对象ID
当我打印一个Groovy对象,它看起来像这样:
groovy:000> f = new Foo()
===> [email protected]
怎样才能获得60410cd
对象ID部分,因为一个Groovy对象?
答
[email protected]
是toString()
方法,它是利用由JavaDoc规定的java.lang.Object
定义的默认方法,默认的结果toString()
将返回:
getClass().getName() + '@' + Integer.toHexString(hashCode())
其中,你可以用hashCode()
方法的值查看结果。默认hasCode()
回报:
“为不同的对象不同的整数(这一般是通过将该对象的内部地址转换成一个整数来实现的,但不是由的JavaTM编程语言不需要这种实现技巧。)。”
所以,你看到的是默认的调用都Object.toString()
和Object.hashCode()
的结果,如果你想改变输出,你应该覆盖默认toString()
方法是这样的:
String toString(){
"In Foo!"
}
答
Foo f = new Foo()
Integer.toHexString(System.identityHashCode(f))
你的用例是什么? – Rao