java.lang.Object@19821f とはどういう意味ですか? これは、割り当てなしでオブジェクト型の変数を出力しようとしたときの出力です。コード:
Object object = new Object();
System.out.println(object);
java.lang.Object@19821f とはどういう意味ですか? これは、割り当てなしでオブジェクト型の変数を出力しようとしたときの出力です。コード:
Object object = new Object();
System.out.println(object);
RTFM Object#toString
、:
オブジェクトの文字列表現を返します。通常、この
toString
メソッドは、このオブジェクトを「テキストで表す」文字列を返します。結果は、人が読みやすい簡潔で有益な表現になるはずです。すべてのサブクラスがこのメソッドをオーバーライドすることをお勧めします。クラスの
toString
メソッドは、オブジェクトがインスタンスであるクラスの名前、アットマーク文字「@」、およびオブジェクトのハッシュ コードの符号なし 16 進数表現で構成される文字列Object
を返します。つまり、このメソッドは次の値に等しい文字列を返します。getClass().getName() + '@' + Integer.toHexString(hashCode())
バックグラウンドで、その引数 System.out.println
のメソッドを呼び出すことに注意することが重要です。toString
それは、toString()
メソッドが型に対して出力するObject
ものです。(現在)次のように指定されています。
getClass().getName() + '@' + Integer.toHexString(hashCode())
Object
はすべてのオブジェクトの uber-class であるため、任意のタイプのオブジェクトである可能性があるため、派生オブジェクトがtoString()
メソッドをオーバーライドして、より有用な表現を提供することが期待されます。
これが のデフォルトの実装ですObject.toString()
。ソースコードを見ることもできます。
これは、インスタンス化したオブジェクトのハッシュコードです。println メソッドはオブジェクトの toString メソッドを呼び出すだけです。