Immutable objectsライブラリを使用して不変クラスを作成すると、どのように変更可能なメンバー(たとえばj.u.Date)を扱うことができますか?変更不可能なアイテム
注:これはない JavaのDateクラスについて、いくつかのコードを生成します不変オブジェクト Javaライブラリには全く関係しています!
例:
@Value.Immutable
public interface MyImmutableClass {
Date creationDateTime();
}
ゲッターをオーバーライドする方法は、それはコピーを返すように、ありますか?それはコピーを返すように
public Date creationDateTime() {
return new Date(creationDateTime.getTime());
}
[不変の日付クラス](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html)を使用することもできます。そうであれば、必ずゲッターを持ってくださいコピーを返す。 '新しい日付を返します(creationDateTime。getTime()); ' – khelwood
私はjava8の機能を使うことはできませんし、Dateだけでなく他のクラスにも影響する可能性があります。 – TmTron
参照@stackoverflow.com/questions/7082553/java-util-date-clone-or-copy-to-not-expose-internal-reference – khelwood