2

文字列を不変にするためにJavaで使用される手法は?
または、文字列クラスを不変にする方法を教えてください。
この背後にあるロジックを知りたいだけです。

4

2 に答える 2

7

Java では、Stringオブジェクトはすでに不変です。

Java 言語の作成者が具体的にどのように不変にしたかについて話すことはできませんが、独自のクラスを不変にするために従うことができるStringいくつかのガイドラインを以下に示します。

  1. セッターメソッドを使用しないでください。
  2. すべてのフィールドprivateを と にしfinalます。
  3. メソッドの上書きを許可しないでください (クラスを作成するかfinal、ファクトリ パターンを使用します)。
  4. いずれかのフィールドが可変型のオブジェクトである場合、それらのオブジェクトを使用するときは注意してください: getter メソッドからそれらのオブジェクトを返すとき、またはコンストラクターでそれらを受け取るときに、それらを防御的に複製し、可変オブジェクトを変更するメソッドを提供しないでください。
于 2013-08-17T15:13:40.413 に答える
2

StringJava のクラスはすでに不変です。

参考として、 http://docs.oracle.com/javase/7/docs/api/java/lang/String.htmlのドキュメントを参照してください。

Java String クラスの実装方法を確認したい場合は、http://docjar.com/html/api/java/lang/String.java.htmlにアクセスしてください。

于 2013-08-17T15:12:16.280 に答える