Lorsque nous créons des classes immuables à l'aide de la bibliothèque Immutable objects, comment pouvons-nous gérer les membres mutables (par exemple j.u.Date)?articles mutables à Immuable
REMARQUE: cela est pas sur la classe Date de java et totalement en rapport avec les objets Immuable bibliothèque java qui va générer un code!
Exemple:
@Value.Immutable
public interface MyImmutableClass {
Date creationDateTime();
}
Est-il possible de passer outre le getter, de sorte qu'elle retourne une copie?
public Date creationDateTime() {
return new Date(creationDateTime.getTime());
}
Vous pouvez utiliser une [classe de date immuable] (https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html), ou, oui, par tous les moyens avoir votre getter renvoie une copie. 'return new Date (créationDateTime.getTime()); ' – khelwood
Je ne peux pas utiliser les fonctionnalités de java8 et cela peut aussi affecter d'autres classes - pas seulement la date. – TmTron
Voir aussi http://stackoverflow.com/questions/7082553/java-util-date-clone-or-copy-to-not-expose-internal-reference – khelwood