Задачу решил, но остался вопрос.
Если при десериализации конструктор НЕ вызывается, то как инициализируются поля, для которых значение мы отметили transient?
Они ведь не были сериализованы, значит не записались, а значения формируются в конструкторе.
lacoste89
32 уровень
Не понятен один момент
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Magos Reductor ExceptionExpert
25 ноября 2019, 08:08
Рефлексия называется погугли если интересно
0
Дмитрий
15 ноября 2018, 21:07
Так и есть (специально добавил сериализацию и десериализацию в main, чтобы проверить). При десериализации переменные transient принимают значения по умолчанию (null).
Видимо в задаче просто подобные нюансы не предусмотрены.
0
Стас Пасинков Software Developer в Zipy Master
13 сентября 2018, 10:39
а почему конструктор не вызывается?
вроде ж вызывается. просто не тот, что у вас есть. вызываются конструкторы по умолчанию.
а transient поля получают значения по умолчанию (для ссылочных переменных - null)
0
Magos Reductor ExceptionExpert
25 ноября 2019, 07:55
подождите, как может вызыватся коснтруктор по умолчания, если у нас есть конструктор с параметрами а пустой коснтруктор явно не оперделен.
да и тесты я проводил пустой конструктор не вызывается при обычной десириализации
0