学习使用Lombok生成代码

1、介绍

  Lombok官网:https://projectlombok.org/html

  Lombok的功能简单一点说,就是能够帮咱们生成一些代码,这些代码并非在源码(source code)体现出来的,而是在字节码文件中。java

  好比咱们建立一个简单的pojo,须要生成有参构造函数、无参构造函数、getter、setter、toString、hashCode、equals这些个方法,虽然经过IDE也是能够生成代码的,可是,利用IDE生成的代码有个问题:代码量大、若是修改属性名后,这些方法基本都得从新生成,不咋方便。maven

  Lombox的功能:能够为咱们生成上面说的那些方法,只须要咱们在类名上使用相关注解便可。ide

 

2、导入jar包

  这里使用Maven来导入依赖:函数

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

  注意,maven引入依赖是,scope是provided,也就是说,lombok包在运行时是不须要的,主要是在编译的时候使用。post

 

3、建立简单pojo

  这里举个简单的示例,就建立一个Person类:测试

package cn.ganlixin.pojo;

import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;

// 注意下面使用的几个注解,都是Lombok提供的
@NoArgsConstructor
@AllArgsConstructor
@ToString
@EqualsAndHashCode
public class Person {

    // 建立三个属性
    private Integer id;
    private String name;
    private String addr;

    // 没有使用IDE进行代码生成,编译源码时,Lombok会自动在字节码中生成方法(前面注解指定的那些方法)
}

  

4、Lombok经常使用的注解

  下面是Lombok经常使用的注解:code

@NoArgsConstructor      // 生成无参构造函数   
@AllArgsConstructor     // 生成包含全部属性的有参构造函数
@ToString               // 生成toString方法
@EqualsAndHashCode      // 生成equals和hashCode方法
@Getter                 // 为全部字段生成getter     
@Setter                 // 为全部字段生成setter

  

5、进行测试

  建立测试类:htm

package cn.ganlixin.pojo;

import org.junit.Test;

public class TestPerson {

    @Test
    public void testCreatePerson() {
        // 虽然IDE提示下面的构造函数有错误,可是执行的时候,并不会报错,而是会正常运行
        Person person = new Person(1, "ganlixin", "beijing");
        System.out.println(person);
        // 输出 Person(id=1, name=ganlixin, addr=beijing)
        // 说明有参构造函数和toString方法已经生成了
    }
}

 

6、解决IDEA提示Lombok生成方法未定义的问题

  参考:解决IDEA中Lombok生成代码后提示错误的问题blog

相关文章
相关标签/搜索