Java for Beginner
677 subscribers
546 photos
155 videos
12 files
836 links
Канал от новичков для новичков!
Изучайте Java вместе с нами!
Здесь мы обмениваемся опытом и постоянно изучаем что-то новое!

Наш YouTube канал - https://www.youtube.com/@Java_Beginner-Dev

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
Введение в Lombok и базовые аннотации

Всем привет!

Сегодня мы начинаем серию постов, посвященных библиотеке 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