Скажем нет Boilerplate коду в Java!
И воспользуемся библиотекой Lombok.
Наверняка многие из джавистов встречались с проблемой создания и последующей поддержки: геттеров, сеттеров, билдеров, конструкторов.
Так вот, встречайте Lombok (хотя его уже поздновато встречать, проект существует более 4 лет). Библиотека позволяет одним взмахом нескольких аннотаций заменить ваш boilerplate-код.
Мы создали класс Person с четырьмя параметрами. В принципе выглядит не так страшно, хоть и неприятно. Но представим ситуацию, прошел месяц и нам понадобилось добавить еще двадцать параметров. В результате вы получите класс, который будет больше данного в раз пять, а тут бизнес-логики минимум!
Что ж попробуем воспользоваться Lombok. Для этого удаляем конструктор и все геттеры. И добавляем две аннотации @Getter, @AllArgsConstructor. Объяснять что делает каждая аннотация думаю нет смысла, так как из названия все очевидно.
А что если я захочу добавить hashCode, equals, toString? И тут нам поможет Lombok! Всего две строчки кода:
И это еще не все прелести Lombok:
- В Eclipse, IntelliJ Idea присутствуют плагины для работы с Lombok.
- Простота подключения через Maven и другие инструменты сборки.
- Поддержка других интересных фич: объявление final переменной с помощью
val
, создание билдеров, добавление логгера и т.д. Полный список: клац.
Но есть и свои минусы:
- возможны проблемы с пониманием кода;
- проблемы совместимости с Groovy;
- некоторые аннотации могут быть понижены до статуса Experimental и вам как-то придется решать эту проблему;
Советую почитать информацию об опыте использования библиотеке: тут и тут.
Итого
Для своих мелких проектов я в обязательном порядке использую Lombok и он позволяет мне сохранить кучу времени. Но вы должны понимать и те проблемы, к которым может привести использование данной библиотеки. Поэтому хорошенько посоветуйтесь со своей командой перед тем как использовать Lombok.