Как стать автором
Обновить

Комментарии 13

То есть, что-то типа case-классов в Scala?

Больше на дата-классы из Kotlin.

Еще больше на record из Pascal.
на record из Pascal совсем не похоже, покрайней мере потому, что record из Pascal — это структура, передаваемая и присваиваемая по значению (кстати в статье про это ни слова, даже когда сравнивали с кортежами). А ещё record из Pascal не генерит никаких доп. членов и вообще поддерживает только поля (хотя вот тут могу ошибаться — может что-то сейчас изменилось в актуальных компиляторах, но классический и всякий турбо/борланд паскали это не поддерживали). А вот Data-классы Kotlin на явовский рекорд очень похожи. А case-классы из Scala так вообще, наверное прародители данной концепции! А ещё в C# 8-ом такие record-классы обещали — но так и не завезли пока — хотят вот тут сходство с Java будет максимальным!
Здорово, что язык постоянно развивается и адаптируется под современные реалии!
Однако, с тех пор, как все поголовно начали использовать проект Lombok, многословность Java перестала являться проблемой. Теперь можно просто получать удовольствие, не заморачиваясь генерацией всего этого мусора, который только захламляет код и отвлекает от главного. Описанное в статье решается там одной аннотацией @Value.
Зачем вам ещё одна библиотека, когда это может быть в стандарте?

Да абсолютно незачем, согласен!
Но многие проекты, как известно, всё ещё не переехали даже на Java 11 LTS. Следующая же LTS версия 17 ожидается лишь в сентябре 2021.
Так что Lombok хоронить ещё рановато, и к тому же там куча других плюшек.

Учитывая что Lombok работает во время компиляции, его применение никак не обременяет программиста.

Да потому-что любой стандарт как правило убог и не покрывает большинства реальных кейсов. Конкретно о записях — перечитайте параграф "Цели, которых не было". Истинная цель появления записей в джаве скорей всего — это впоследствии прикрутить pattern matching. А моделировать данные с записями невозможно.

Лучше бы кортежи добавили, это и через lombok можно сделать.

Также стоило бы упомянуть, что данная фича была взята у котлина (data class)

Да что вы говорите. А Котлин первый в мире язык с рекордами или нет?


А если нет, возможно существует вероятность что и Ява, и Котлин списали домашку?

Ломаем соглашения о наименовании для java bean? Вместо point.getX() будет point.x()?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации