前言

  Lombok
一个非常好用的小工具,刚看到就有一种相见恨晚的感觉,上手之后更觉不错,在此记录一下。
  官网地址:https://projectlombok.org/

Lombok简介

  Lombok是一个可以通过简单的注解来简化一些必须有但显得十分臃肿的Java代码的工具。例如,在java项目编写的过程中,实体类总是有许多属性字段,而我们就必须为其添加对应的get、set方法,虽然有idea快捷键,但每次修改字段时任免不了这些操作, 还是十分不便。Lombok的作用就是为了省去这些手动创建代码的麻烦,它能够在编译源码的时候自动帮我们生成这些方法。

Lombok使用

1.设置Lombok环境

  1. 下载Lombok插件
      File -> setting -> Plugins -> Browse repositories -> 搜索Lombok -> 点击install
      Setting -> Compiler -> Annotation Processors -> Enable annotation processing勾选
      然后重启idea即可。

  2. 添加Lombokmavenpom.xml依赖

    1
    2
    3
    4
    5
    <dependency>  
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.10</version>
    </dependency>

2. Lombok使用示例

  1. 示例类 Student

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    package com.pojo;

    import lombok.Getter;
    import lombok.Setter;
    import lombok.ToString;

    /**
    * Created by Administrator
    * on 2017/8/10 11:34.
    */
    @Setter
    @Getter
    @EqualsAndHashCode
    @ToString
    public class Student {

    private String name;
    private String age;
    private String group;

    }

  2. 测试类Start

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    package com;

    import com.pojo.Student;

    /**
    * Created by Administrator
    * on 2017/8/10 11:09.
    */
    public class Start {

    public static void main(String[] args) {
    Student s = new Student();
    s.setAge("23");
    s.setName("hewei");
    Student s2 = new Student();
    s2.setAge("23");
    s2.setName("hewei");
    System.out.println(s.getAge());
    System.out.println(s.equals(s2));
    s2.setName("he");
    System.out.println(s.equals(s2));
    System.out.println(s);
    }
    }
  3. 输出结果

    1
    2
    3
    4
    23
    true
    false
    Student(name=hewei, age=23, group=null)

&ensp;&ensp;如上结果可以看出,Lombok注释省去了getsetequalshashCodetoString等代码,大大简化了代码编写,省去了没必要的代码量。

Lombok常用注解

Lombok官网上的文档里面有所有的注解,这里不一一罗列,只说明其中几个比较常用的。

@NonNull: 控制参数不为空
@NoArgsConstructor: 自动生成无参构造函数
@AllArgsConstructor: 自动生成全参构造函数
@EqualsAndHashCode: 添加equals()hashcode()方法
@Data: 自动为所有字段添加@ToString, @EqualsAndHashCode, @Getter方法,为非final字段添加@Setter,和@RequiredArgsConstructor