Comments 31
В результате, в классах есть ну максимум один геттер/сеттер, а все остальное — это нормальные методы с нормальными именами, выполняющие нетривиальную функциональность. Неужели в яве с этим такие проблемы?
Мораль проста — не используйте Lombok. Я сейчас на большом проекте, где он используется, и за полгода им так и не проникся. В тривиальных случаях он помогает избавиться от нескольких строк бойлерплейта, но как-то это недостаточно весомая причина для +1 источника магии в коде.
Например у меня много микро-сервисов. В не которых из них могут быть поджо на десятки полей. Классы могут инжектиться до десятком (очень редко конечно) сервисов.
В первом случае писать толпу гетр сетеров во втором случае писать конструктор на несколько параметров и поддерживать его при изменениях кода.
А так же отличный фукционал генерации статик конструкторов и билдеров.
В целом на ломбок очень даже подходит на бэкенд задачах с толпой логики и энтетей.
Так ведь вместо кучки геттеров-сеттеров можно использовать public
поля.
писать толпу гетр сетеров
Вы так говорите, словно это проблема. В современных IDE есть генераторы геттеров/сеттеров и даже в простом текстовом редакторе с этой задачей на ура справится банальный поиск с заменой. Два у нас поля или двадцать особой роли не играет.
В смешивании файлов Kotlin и Java без чёткого разделения есть много других недостатков.
Это каких? Могли бы привести конкретные примеры? Собственно для таких юзкейсов Котлин и создавался и отлично с ними работает.
Упомянутое замедление сборки может произойти конечно (из-за дополнительного анализа java кода компилятором Kotlin), но оно не критичное и на глаз его сложно заметить.
Это заставляет всех разработчиков, работающих с вами над проектом, знать оба языка.
Ну это не выглядит проблемой, без знания Java в Android разработке всяко никак, ну а обучить Java разработчика котлину на приемлемом уровне дело недели-двух
«pet project» — это не проект про домашних животных, это «детище, любимый проект». Хотя в контексте статьи ваш перевод этой фразы получился очень даже к месту))
Мы бы поисследовали и, вероятно, исправили бы этот баг (впрочем, есть подозрение в неверной конфигурации проекта).
Напишите автору оригинальной статьи, думаю он с радостью это сделает.
data class Movie(
val id: Long,
val title: String,
val posterUrl: String
)
Всё! У вашего entity теперь есть и get (чтобы были set нужно val поменять на var), а также equals(), hashcode(), toString() и clone(). Метод clone() — правильный подход. Должны быть лишь геттеры. Хочешь менять — создавай клон!
Перед тем, как перетаскивать проект с Java на Kotlin стоит Kotlin изучить.
Как с треском провалить миграцию с Java на Kotlin в Android приложении