Найти в Дзене
Alex Pevnenko

Lombok: Шпаргалка для продуктивной Java-разработки

Всем привет! Сегодня поговорим про одну из самых популярных библиотек для Java-разработки. Приятного чтения! Lombok — это библиотека, которая экономит время Java-разработчикам, убирая шаблонный код (boilerplate) с помощью аннотаций. Maven: (версия может меняться, смотрите актуальную в репозитории) <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.38</version> <scope>provided</scope> </dependency> Gradle: dependencies { compileOnly 'org.projectlombok:lombok:1.18.30' annotationProcessor 'org.projectlombok:lombok:1.18.30' } 1️⃣ @Getter / @Setter - Генерируют геттеры и/или сеттеры для полей (Можно ставить на поля: для частичной генерации) 2️⃣@AllArgsConstructor / @AllArgsConstructor / @RequiredArgsConstructor - Генерируют разные типы конструкторов 3️⃣@Data - Включает в себя @Getter / @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor 4️⃣@ToString - Генерирует toString() (Можно исключать поля с помощью exclude = "field" ) 5️⃣@E
Оглавление

Всем привет!

Сегодня поговорим про одну из самых популярных библиотек для Java-разработки. Приятного чтения!

Lombok — это библиотека, которая экономит время Java-разработчикам, убирая шаблонный код (boilerplate) с помощью аннотаций.

🔧 Подключение

Maven: (версия может меняться, смотрите актуальную в репозитории)

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.38</version>
<scope>provided</scope>
</dependency>

Gradle:

dependencies {
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
}

📦 Основные аннотации Lombok

1️⃣ @Getter / @Setter - Генерируют геттеры и/или сеттеры для полей (Можно ставить на поля: для частичной генерации)

2️⃣@AllArgsConstructor / @AllArgsConstructor / @RequiredArgsConstructor - Генерируют разные типы конструкторов

  • @AllArgsConstructor - все поля
  • @AllArgsConstructor - без аргументов
  • @RequiredArgsConstructor - только final или @NonNull

3️⃣@Data - Включает в себя @Getter / @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor

4️⃣@ToString - Генерирует toString() (Можно исключать поля с помощью exclude = "field" )

5️⃣@EqualsAndHashCode - Генерирует equals() и hashCode()

6️⃣@Builder - Позволяет удобно строить объекты с помощью Builder паттерна

7️⃣@Value - Немутируемый класс: аналог @Data, но все поля final, без сеттеров

8️⃣@SneakyThrows - Позволяет "скрыть" checked exceptions (очень удобная аннотация)

9️⃣@NonNull - Проверка на null в runtime. Используется в конструкторах и сеттерах

1️⃣0️⃣ @Cleanup - Автоматически вызывает close() (аналог try-with-resources)

Lombok работает на этапе компиляции, IDE должна поддерживать его (для IntelliJ нужен плагин).

Все важные ссылки:

Надеюсь информация в данной статье была для вас полезна! Всем чистого кода.

#Java #Lombok #LombokAnnotations #JavaTips #BackendDev #JavaTools