私は最近、不変オブジェクトの有用性につまずきました。たとえば、要素をコンストラクタに渡し、クラスを不変にする必要がある場合、これらの要素が不変でない場合はこれらの要素をコピーする必要があります。
これには、プロジェクトに関する多くの確認または知識が必要です。
public A(B foo)
かつB
不変ではない、A
私はコピーする必要があるだろうB
。今でB
は不変のように思えますが、それ自体はコンストラクタなどに可変クラスを持っています。
Javaでクラスが不変である場合、文書化するための標準またはベストプラクティスはありますか?@immutable
Javadoc にはキーワードがないようです。
@Immutable注釈は自動クラスの生成ではなく、標準のJavaの一部については全く違うもののようです。