Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Работает в
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Бэкенд разработчик
Ведущий
Java
Kotlin
Clean Architecture
Проектирование архитектуры приложений
Системная аналитика
Ну теперь-то уж нам только и остаётся, что «остаться при своём», благо, Ваш адвокат постом выше очень обстоятельно лёг на абмразуру, так что, вдаваться в дальнейшую дискуссию, действительно, смысла нет.
И раз уж мне действительно непонятно, что это товарищ прицепился с таким замечанием, так может, Вы позволите ему самому высказаться и объяснить свою позицию?
А Вам — хороших выходных.
Как нам известно, объект создаётся при помощи конструкции
Как работает эта конструкция (если вкратце)?
new — ключевое слово, выделяющее память под объект.
User — тип объекта.
() — вызываемый конструктор.
и самое главное — user — это ссылка.
Соответственно, при создании нового объекта происходит выделение памяти под этот объект, в нужный конструктор отправляются параметры, если они есть, и объекту присваивается ссылка, по которой мы можем этот объект потом достать.
Можем ли мы присвоить объекту ещё одну ссылку? Конечно. Например:
Что произошло? Мы не создали новый объект, не выделили память под него. Мы просто присвоили ему ещё одну ссылку. Теперь объект доступен из памяти по двум ссылкам, а не по одной.
Окей. Как происходит преобразование объекта?
При преобразовании объекта, насколько мне известно, происходит следующее:
— тип объекта теперь User, со всеми полями и методами
— новый объект при этом не создаётся
— преобразованному объекту присваивается новая ссылка — user.
Теперь объект можно получить по обеим ссылкам — по старой и по присвоенной.
Так почему присвоение ссылки объекту? Потому что для одного объекта может быть много ссылок, а для ссылки объект всего один. Ссылка принадлежит объекту, а не наоборот.
Но Вы и так это знаете.
Вероятно, разработчики планируют использовать упаковщик только для десктопных приложений, где обычно не подразумевается распределение пропертей.
Ну так null может быть только поле, а не метод :)
Рабочая конфигурация при этом не сильно будет отличаться от предложенной в посте (Postgres меняем на Embeded — вот и все отличия).
По поводу других аллегорий, применяемых в статье, тоже можете смело обращаться ко мне. Объясню.