Введение в Lombok и базовые аннотации
Всем привет!
Сегодня мы начинаем серию постов, посвященных библиотеке Lombok. Если вы устали писать boilerplate-код (геттеры, сеттеры, toString, equals и т.д.), то Lombok — это то, что вам нужно! Давайте разберемся, что это за библиотека и как она может упростить вашу жизнь.
Что такое Lombok и зачем он нужен?
Lombok — это библиотека для Java, которая помогает сократить объем шаблонного кода. Она автоматически генерирует методы, такие как геттеры, сеттеры, toString(), equals(), hashCode() и другие, во время компиляции. Это делает код более чистым и удобным для чтения.
Пример без Lombok:
Пример с Lombok:
Установка Lombok в проект
Maven (проверяйте версии в библиотеке Maven):
Добавьте зависимость в pom.xml:
Gradle:
Добавьте зависимость в build.gradle:
Аннотация @Getter и @Setter
Эти аннотации автоматически генерируют геттеры и сеттеры для всех полей класса.
Пример:
Как это работает:
Lombok генерирует методы getName(), setName(), getAge(), setAge() во время компиляции. Эти методы добавляются в байт-код, но не отображаются в исходном коде.
Нюансы:
Можно применять аннотации к отдельным полям, если не нужно генерировать методы для всех полей.
Уровень доступа методов можно изменить с помощью параметра AccessLevel:
Аннотация @ToString
Эта аннотация автоматически генерирует метод toString(), который возвращает строковое представление объекта.
Пример:
Как это работает:
Lombok генерирует метод toString(), который выглядит примерно так:
Нюансы:
Можно исключить поля из toString() с помощью параметра exclude:
Можно включить только определенные поля с помощью параметра of:
#Java #Training #Spring #Lombok #Getter #Setter #ToString
Всем привет!
Сегодня мы начинаем серию постов, посвященных библиотеке Lombok. Если вы устали писать boilerplate-код (геттеры, сеттеры, toString, equals и т.д.), то Lombok — это то, что вам нужно! Давайте разберемся, что это за библиотека и как она может упростить вашу жизнь.
Что такое Lombok и зачем он нужен?
Lombok — это библиотека для Java, которая помогает сократить объем шаблонного кода. Она автоматически генерирует методы, такие как геттеры, сеттеры, toString(), equals(), hashCode() и другие, во время компиляции. Это делает код более чистым и удобным для чтения.
Пример без Lombok:
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
Пример с Lombok:
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class User {
private String name;
private int age;
}
Lombok убирает необходимость писать шаблонный код, что особенно полезно в больших проектах.
Установка Lombok в проект
Maven (проверяйте версии в библиотеке Maven):
Добавьте зависимость в pom.xml:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
<scope>provided</scope>
</dependency>
Gradle:
Добавьте зависимость в build.gradle:
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.36'
annotationProcessor 'org.projectlombok:lombok:1.18.36'
}
Аннотация @Getter и @Setter
Эти аннотации автоматически генерируют геттеры и сеттеры для всех полей класса.
Пример:
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class User {
private String name;
private int age;
}
Как это работает:
Lombok генерирует методы getName(), setName(), getAge(), setAge() во время компиляции. Эти методы добавляются в байт-код, но не отображаются в исходном коде.
Нюансы:
Можно применять аннотации к отдельным полям, если не нужно генерировать методы для всех полей.
Уровень доступа методов можно изменить с помощью параметра AccessLevel:
@Getter(AccessLevel.PROTECTED)
private String name;
Аннотация @ToString
Эта аннотация автоматически генерирует метод toString(), который возвращает строковое представление объекта.
Пример:
import lombok.ToString;
@ToString
public class User {
private String name;
private int age;
}
Как это работает:
Lombok генерирует метод toString(), который выглядит примерно так:
@Override
public String toString() {
return "User(name=" + this.name + ", age=" + this.age + ")";
}
Нюансы:
Можно исключить поля из toString() с помощью параметра exclude:
@ToString(exclude = "age")
public class User {
private String name;
private int age;
}
Можно включить только определенные поля с помощью параметра of:
@ToString(of = "name")
public class User {
private String name;
private int age;
}
#Java #Training #Spring #Lombok #Getter #Setter #ToString