2017-10-04 2 views
0

私は基本的な面白い質問があります。私はグルーヴィーなオブジェクトを印刷するときGroovyオブジェクトID

、それは、このような次のようになります。

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

どのようにしてグルーヴィーなオブジェクトを指定して、60410cdオブジェクトIDの一部を取得していますか?

+0

どのような場合ですか? – Rao

答えて

1

[email protected]はJavaDocの中で定義されているように、デフォルトtoString()が返されます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))​​​​​​​​​​​​​​​​​​​​​​​ 
関連する問題