2017-10-04 43 views
0

我有一个基本的常规问题。Groovy对象ID

当我打印一个Groovy对象,它看起来像这样:

groovy:000> f = new Foo() 
===> [email protected] 

怎样才能获得60410cd对象ID部分,因为一个Groovy对象?

+0

你的用例是什么? – Rao

回答

1

[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!" 
} 
0
Foo f = new Foo() 

Integer.toHexString(System.identityHashCode(f))​​​​​​​​​​​​​​​​​​​​​​​