私は基本的な面白い質問があります。私はグルーヴィーなオブジェクトを印刷するときGroovyオブジェクトID
、それは、このような次のようになります。
groovy:000> f = new Foo()
===> [email protected]
どのようにしてグルーヴィーなオブジェクトを指定して、60410cd
オブジェクトIDの一部を取得していますか?
私は基本的な面白い質問があります。私はグルーヴィーなオブジェクトを印刷するときGroovyオブジェクトID
、それは、このような次のようになります。
groovy:000> f = new Foo()
===> [email protected]
どのようにしてグルーヴィーなオブジェクトを指定して、60410cd
オブジェクトIDの一部を取得していますか?
[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!"
}
Foo f = new Foo()
Integer.toHexString(System.identityHashCode(f))
どのような場合ですか? – Rao