La meilleure pratique consiste à ne pas exposer les références internes d'un objet (entité). Ainsi, si un Object possède un champ de type java.util.Date
alors par exemple le getter pour ce champ ne devrait pas retourner la date originale mais une copie de celle-ci.
Mais pour une date java.util.Date, il existe deux façons courantes de créer cette copie :
- clone :
(Date) originalDate.clone()
- copie via le constructeur
new Date(originalDate.getTime())
Ma question est la suivante : quelle est la meilleure solution, et pourquoi ?