Lombok官网:https://projectlombok.org/html
Lombok的功能简单一点说,就是能够帮咱们生成一些代码,这些代码并非在源码(source code)体现出来的,而是在字节码文件中。java
好比咱们建立一个简单的pojo,须要生成有参构造函数、无参构造函数、getter、setter、toString、hashCode、equals这些个方法,虽然经过IDE也是能够生成代码的,可是,利用IDE生成的代码有个问题:代码量大、若是修改属性名后,这些方法基本都得从新生成,不咋方便。maven
Lombox的功能:能够为咱们生成上面说的那些方法,只须要咱们在类名上使用相关注解便可。ide
这里使用Maven来导入依赖:函数
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.22</version> <scope>provided</scope> </dependency>
注意,maven引入依赖是,scope是provided,也就是说,lombok包在运行时是不须要的,主要是在编译的时候使用。post
这里举个简单的示例,就建立一个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会自动在字节码中生成方法(前面注解指定的那些方法) }
下面是Lombok经常使用的注解:code
@NoArgsConstructor // 生成无参构造函数 @AllArgsConstructor // 生成包含全部属性的有参构造函数 @ToString // 生成toString方法 @EqualsAndHashCode // 生成equals和hashCode方法 @Getter // 为全部字段生成getter @Setter // 为全部字段生成setter
建立测试类: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方法已经生成了 } }
参考:解决IDEA中Lombok生成代码后提示错误的问题blog