9

Object.toString()JavaDoc は次のように述べています。

オブジェクトの文字列表現を返します。一般に、toStringメソッドは、このオブジェクトを「テキストで表す」文字列を返します。

それでも、Collections(セット、リストなど) のような非常に便利なtoString()メソッドを持つことができる標準的な Java クラスの多くは、わざわざ実装する必要はありません。この愚かさには理由がありますか?

それとも、代わりに 16 進文字列をご希望ですか? :)

編集:おっと、これは私のIDEの使用に失敗しました。実装の代わりにインターフェースをたどったところ、何らかの理由でObject.toString().

4

2 に答える 2

6

更新:

クラスを意味する場合Collection、答えは次のようになります。これはまったく同じではありません。Collectionクラスの多くは、このメソッドをオーバーライドします。たとえば、継承されたすべてのクラスに共通のAbstractCollection、独自のtoString実装を持つクラスです。

つまりCollection[s]、このクラスにはプライベート コンストラクターがあり、インスタンス化できません。したがって、特別なtoString方法は無意味です。

于 2012-12-19T08:30:14.987 に答える
2

Collectionsクラスについて話している場合、それはユーティリティ クラスであり、toString() メソッドをオーバーライドする必要はありません。通常、ユーティリティ クラスの場合、コンストラクターを非公開にし、静的メソッドを提供します。

また、コンストラクターが非公開になっているため、Collections クラスのオブジェクトを作成できないことも確認してください。java.util.Collections ソースを確認、行番号 56

于 2012-12-19T08:30:40.863 に答える