クラスでは、空のオブジェクトを定義し、必要な場所で使用したいと考えています。誤って変更するのを避けるために、このオブジェクトは不変である必要があります。このオブジェクトがpublic static final
クラスのメンバとして定義されている場合、クラス自体が変更可能な場合、オブジェクトが変更される可能性があります。可変Javaクラスで不変オブジェクトを定義する方法は?
変更可能なクラスで不変オブジェクトを作成するにはどうすればよいですか?
クラスでは、空のオブジェクトを定義し、必要な場所で使用したいと考えています。誤って変更するのを避けるために、このオブジェクトは不変である必要があります。このオブジェクトがpublic static final
クラスのメンバとして定義されている場合、クラス自体が変更可能な場合、オブジェクトが変更される可能性があります。可変Javaクラスで不変オブジェクトを定義する方法は?
変更可能なクラスで不変オブジェクトを作成するにはどうすればよいですか?
不変のラッパー(GOF?のプロキシ)を自分自身で書く代わりに、不変(最終的なフィールドを持つ最終クラスなど)にすることはできません。内部には元のクラスインスタンスへの代理人がいます。
あなたは不変クラスを作成する必要がある場合、あなたは、この要件を満たす必要があります。
それは正しいですが、質問に答えません。 –
不変であるようにするには、そのクラスを不変に設計します(またはできない場合は、*不変のクラスをラップします)。 –
これはできません。呼び出されるたびに新しいインスタンスを返すメソッドを提供するか、または読み取り専用インターフェイスを定義してこれを定数の型にするか、元のクラスをラップして変更を防ぐクラスを作成します。 –