7

これは非常に基本的な質問かもしれませんが、既に質問されていたらすみません。Java の toString() を実際のプログラム ロジックに使用する必要がありますか、それともデバッグ/人間の読み取りのみに使用する必要があります。私の基本的な質問は、実際のプログラム フローで文字列表現を使用する必要がある場合に、toString() を使用するか、asString() という別のメソッドを作成することです。

私が尋ねる理由は、正しく動作するために toString() に依存する Web サービスにたくさんのクラスがあるためです。私の意見では、asString() のようなものがより安全だったでしょう。

ありがとう

4

2 に答える 2

11

いくつかの特定のケースを除いて、toStringはデータの実動フローではなく、デバッグに使用する必要があります。

この方法にはいくつかの制限があり、本番データ フローでの使用には適していません。

  • パラメータを取らないため、このメソッドでは、環境に応じて文字列表現を簡単に変更することはできません。特に、現在のロケールに敏感な方法で文字列をフォーマットすることは困難です。
  • クラスの一部であるためjava.Object、このメソッドは通常、サブクラスによってオーバーライドされます。これは、サブクラスの作成者が制限を認識できない可能性があるため、特定の表現に依存する状況では有害な場合があります。

このルールの明らかな例外toStringは、StringBuilderおよびStringBufferクラスのメソッドです。これら 2 つのメソッドは、対応するオブジェクトの変更可能なコンテンツから不変の文字列を作成するだけだからです。

于 2013-11-11T16:42:16.450 に答える
0

デバッグ/人間の読み取り専用ではなく、実際にはオブジェクトが使用されているコンテキストに依存します。たとえば、あるオブジェクト X を表示しているテーブルがある場合、テーブルに X の読み取り可能なテキスト表現を表示したい場合、通常は toString() メソッドを実装します。もちろん、これは基本的な例ですが、 toString() を実装することをお勧めする多くの用途があります。

于 2013-11-11T16:44:58.417 に答える