在Java语言项目开发过程中用注解的方式,简化了 JavaBean 的编写,避免了冗余和样板式代码。
自动的加上属性,构造器,ToString方法,Equals方法等等,你在更改字段的时候,lombok会立即发生改变保持和你代码的一致性。
编写的类更加简洁,编写的过程更加高效。
@Getter 自动生成get方法
@Setter 自动生成set方法
@ToString 自动生成toString方法
@RequiredArgsConstructor生成一个包含常量和标识了NotNull的变量的构造方法。生成的构造方法是私有的private,这个我用的很少。
@EqualsAndHashCode
(1)它会生成equals和hashCode方法
(2)默认使用非静态的属性
(3)可以通过exclude参数排除不需要生成的属性
(4)可以通过of参数来指定需要生成的属性
(5)它默认不调用父类的方法,只使用本类定义的属性进行操作,可以使用callSuper=true来解决,会在@Data中进行讲解。
@Data 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法。
@NoArgsConstructor生成一个无参数的构造方法。
@AllArgsConstructor生成一个包含所有变量的构造方法。
以@Data为例,在写实体类时,经常需要先定义变量,手写或者自动生成get、set、toString方法等等操作,也就是:
public class Role {
private int rid;
private String rname;
private String level;
public int getRid() {
return rid;
}
public void setRid(int rid) {
this.rid = rid;
}
public String getRname() {
return rname;
}
public void setRname(String rname) {
this.rname = rname;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
@Override
public String toString() {
return "Role{" +
"rid=" + rid +
", rname='" + rname + '\'' +
", level='" + level + '\'' +
'}';
}
}
而通过使用Lombok则可以大大减少人工操作:
import lombok.Data;
@Data
public class Role {
private int rid;
private String rname;
private String level;
}
注意:安装完后一定要重启idea。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>