文字列を不変にするためにJavaで使用される手法は?
または、文字列クラスを不変にする方法を教えてください。
この背後にあるロジックを知りたいだけです。
2 に答える
7
Java では、String
オブジェクトはすでに不変です。
Java 言語の作成者が具体的にどのように不変にしたかについて話すことはできませんが、独自のクラスを不変にするために従うことができるString
いくつかのガイドラインを以下に示します。
- セッターメソッドを使用しないでください。
- すべてのフィールド
private
を と にしfinal
ます。 - メソッドの上書きを許可しないでください (クラスを作成するか
final
、ファクトリ パターンを使用します)。 - いずれかのフィールドが可変型のオブジェクトである場合、それらのオブジェクトを使用するときは注意してください: getter メソッドからそれらのオブジェクトを返すとき、またはコンストラクターでそれらを受け取るときに、それらを防御的に複製し、可変オブジェクトを変更するメソッドを提供しないでください。
于 2013-08-17T15:13:40.413 に答える
2
String
Java のクラスはすでに不変です。
参考として、 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 に答える