Ну, вы можете иметь удобный метод в служебном классе:
public class DateUtils {
public static Date defensiveCopy(Date date) {
return date == null ? null : new Date(date.getTime());
}
}
Тогда:
public final void setDateCompleted(Date dateCompleted) {
this.dateCompleted = DateUtils.defensiveCopy(dateCompleted);
}
Статический импорт может скрыть часть DateUtils
, если хотите.
В качестве альтернативы вы можете использовать Joda Time , который в основном использует неизменяемые типы и в целом является гораздо лучшим API:)