Статьи

Как использовать Lombok для удаления шаблонных сеттеров-геттеров в Java

Привет друзья,

Один из моментов, которые неоднократно звучат в отношении Java, заключается в том, что мы должны написать много

код в виде сеттеров и геттеров для наших простых классов POJO, что излишне увеличивает

длина нашего кода.

Чтобы решить эту проблему, существует проект с открытым исходным кодом под названием Project Lombok, который решает эту проблему

позволяя вам просто написать несколько аннотаций, и он будет генерировать геттеры и сеттеры в .class, который

генерируются из файлов Java.

Так…

В этом кратком руководстве мы увидим, как мы можем использовать библиотеку Lombok, чтобы избавиться от сеттеров и геттеров, которые

нам нужно писать в наших классах POJO только со свойствами и без логики.

Чтобы понять, как lombok помогает нам, мы разделим этот пост на две части:

— Создать POJO без Lombok и добавить сеттеры геттеры вручную

— Создайте POJO и используйте библиотеку Lombok для добавления установщиков геттеров

Создать POJO без Lombok и добавить сеттеры геттеры вручную

Давайте создадим класс для Employee с несколькими свойствами, как показано ниже, без Lombok и назовем его «EmployeeWithoutLombok»:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.blogspot.javasolutionsguide.model;
/**
 * @author JavaSolutionsGuide
 *
 */
public class EmployeeWithoutLombok {
 
 private int id;
 private String firstName;
 private String lastName;
 private int age;
 private String department;
 
 
 public int getId() {
  return id;
 }
 
 
 public void setId(int id) {
  this.id = id;
 }
 
 
 public String getFirstName() {
  return firstName;
 }
 
 
 public void setFirstName(String firstName) {
  this.firstName = firstName;
 }
 
 
 public String getLastName() {
  return lastName;
 }
 
 
 public void setLastName(String lastName) {
  this.lastName = lastName;
 }
 
 
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 
 
 public String getDepartment() {
  return department;
 }
 
 
 public void setDepartment(String department) {
  this.department = department;
 }
}

Как мы видим выше, мы должны написать сеттеры и геттеры для всех свойств.

Теперь, чтобы протестировать этот класс, давайте напишем тестовый класс с именем «TestEmployeeWithoutLombok».

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.blogspot.javasolutionsguide.lombokTest;
import com.blogspot.javasolutionsguide.model.EmployeeWithoutLombok;
/**
 * @author JavaSolutionsGuide
 *
 */
public class TestEmployeeWithoutLombok {
 
 /**
  *
  * @param args
  *
  */
 public static void main(String[] args) {
  //Test EmployeeWithoutLombok
   
  EmployeeWithoutLombok employeeWithoutLombok = new EmployeeWithoutLombok();
  employeeWithoutLombok.setFirstName("Gaurav");
  employeeWithoutLombok.setLastName("Bhardwaj");
   
  System.out.println("Employee First Name:"+employeeWithoutLombok.getFirstName() + "\n" +
  "Employee Last Name:"+employeeWithoutLombok.getLastName());
  }
}

Выход :

Имя сотрудника: Гаурав

Фамилия сотрудника: Bhardwaj

Итак, здесь мы в основном используем сеттеры и геттеры, которые мы написали сами в

Класс EmployeeWithoutLombok.

Создайте POJO и используйте библиотеку Lombok для добавления установщиков геттеров

Чтобы использовать Ломбок, нам необходимо:

— Добавьте зависимость Lombok в наш pom.xml

— Установите ломбок в нашем затмении

— Добавьте аннотацию @Getters, @Setters в наш POJO

— Создать тестовый класс для тестирования сеттеров и геттеров

Добавьте зависимость Lombok в наш pom.xml

давайте сначала добавим зависимость Lombok в наш maven POM.xml (см. выделенную часть ниже в XML).

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.blogspot.javasolutionsguide</groupId>
  <artifactId>lombakTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
 
 
  <name>lombakTest</name>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
 
 
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
     <groupId>org.projectlombok</groupId>
     <artifactId>lombok</artifactId>
     <version>1.18.4</version>
     <scope>provided</scope>
    </dependency>
     </dependencies>
</project>

Установите ломбок в нашем затмении

Ломбок jar поставляется с установщиком. Нам просто нужно перейти в папку, где у нас есть lombok jar и запустить

банку с помощью команды ниже.

java -jar lombok-1.18.4.jar

Как только мы выполним указанную выше команду, lombok обнаружит все IDE на нашей машине, как у меня

затмение:

Нажмите «Установить / обновить», и он установит Lombok в Eclipse.

Мы можем дважды проверить, включен ли наш Eclipse в Lombok, перейдя в раздел About Eclipse и проверив

«Lombok v1.18.4« Завистливая хорька »установлена. https://projectlombok.org/»

Добавьте аннотацию @Getters, @Setters в наш POJO

Теперь давайте перепишем наш POJO с аннотациями Lombok:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.blogspot.javasolutionsguide.model;
 
 
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
 
 
/**
 * @author JavaSolutionsGuide
 *
 */
@Getter
@Setter
public class EmployeeWithLombok {
 
 private int id;
 private String firstName;
 private String lastName;
 private int age;
 private String department;
}

Как видите, мы добавили аннотации @Getter и @Setter поверх нашего класса POJO, который будет

убедитесь, что Lombok добавит сеттеры и геттеры в файл .class.

Создать тестовый класс для тестирования сеттеров и геттеров

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.blogspot.javasolutionsguide.lombokTest;
 
 
import com.blogspot.javasolutionsguide.model.EmployeeWithLombok;
 
 
/**
 * Main class to test Lombok.
 *
 */
public class TestEmployeeWithLombok
{
    public static void main( String[] args ) {
     //Test EmployeeWithLombok
     EmployeeWithLombok employeeWithLombok = new EmployeeWithLombok();
     employeeWithLombok.setFirstName("Gaurav");
     employeeWithLombok.setLastName("Bhardwaj");
     System.out.println("Employee First Name:"+employeeWithLombok.getFirstName() + "\n" +
     "Employee Last name:"+employeeWithLombok.getLastName());
    }
}
Output :
Employee First Name:Gaurav
Employee Last name:Bhardwaj

Резюме

Итак, в этом уроке мы узнали, как мы можем использовать библиотеку Lombok для генерации сеттеров и геттеров, что приводит к

в более чистый код.

Пожалуйста, не стесняйтесь комментировать, Вопросы или делиться ими с кем-то, кого вы считаете полезным.

Опубликовано на Java Code Geeks с разрешения Гаурава Бхардваджа, партнера нашей программы JCG . Смотрите оригинальную статью здесь: Как использовать Lombok для удаления шаблонных сеттеров-геттеров в Java

Мнения, высказанные участниками Java Code Geeks, являются их собственными.