Также обратите внимание, что мы не использовали метод клонирования Дейта для создания защитных копий. Поскольку Date не является окончательным, метод clone не гарантирует возврата объекта, класс которого равен java.util.Date; он может вернуть экземпляр ненадежного подкласса, специально предназначенного для злонамеренного вреда. Такой подкласс может, например, записывать ссылку на каждый экземпляр в частном статическом списке во время его создания и предоставлять злоумышленнику доступ к этому списку. Это дало бы атакующему право свободно управлять всеми инстанциями. Чтобы предотвратить такого рода атаки, не используйте метод clone для создания защитной копии параметра, тип которого подклассифицирован ненадежными сторонами.

не раскрывать внутренние ссылки на объект (сущность). Так что, если у объекта есть поле типаjava.util.Date тогда, например, получатель для этого поля должен вернуть не оригинальную дату, а ее копию.

Но для java.util.Date есть два распространенных способа создания этой копии:

клон:(Date) originalDate.clone()копировать через конструкторnew Date(originalDate.getTime())

У меня вопрос, какой путь лучше и почему?

Ответы на вопрос(3)

Ваш ответ на вопрос