2017-10-04 66 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))​​​​​​​​​​​​​​​​​​​​​​​