Re[11]: Догонит ли net java?
От: Sinclair Россия https://github.com/evilguest/
Дата: 05.12.22 18:10
Оценка:
Здравствуйте, ·, Вы писали:
·>По-моему фигня какая-то, первое — просто сахарок, который IDEA уже и так подсказывает в виде parameter hints. Второе — как в scala case-class, очень неудобно, когда модификация поля порождает новый объект — жуть.
·>Для dto в 40 полей такое всё равно не годится. Нужен билдер, чтобы по частям можно было собирать.

·>Хочется такого:

·>
·>public Person modify(Person p) {
·>  var builder = p.builder();
·>  updateAAA(builder);
·>  ...
·>  if(...) updateBBB(builder);
·>  else updateCCC(builder);
·>  ...
·>  updateDDD(builder);
·>  return builder.build();
·>}
·>

А что там внутри этих updateBBB()?
Почему нельзя просто сделать тот же With? Ведь при присванивании "в себя же" ескейп-анализ уберёт всю лишнюю нагрузку на GC, в итоге имеем тот же перформанс, лаконичный синтаксис, и отсутствие необходимости для каждого DTO еще и цельный билдер расписывать.


·>В принципе хорошо иметь иммутабельность, но это требует парный мутабельый билдер и всё становится сложно с т.з. дизайна ЯП.

Пока не понимаю, зачем кому-то может пригодиться этот билдер.

·>Ты прав. Можно только новый тип создавать оказывается.

Переходите на сторону CLR. У нас всё это есть Включая "annotation processors"
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.