lombok的主要功能是代替编写一些技术含量不高的代码,加快开发速度,写了常用的
安装
maven坐标导入
// springboot添加不用写版本号
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
</dependency>
idea现在不需要插件了,已经集成了。可以直接使用
基本使用
public class Book {
private int id;
private String name;
private double money;
}
@Data
主要功能创建
- 所有变量的setter和getter函数 权限为public
- toString() 方法
- hasdCode() 方法
- equals(Object) 方法
import lombok.Data;
@Data
public class Book {
private int id;
private String name;
private double money;
}
@Setter @Getter
对属性使用。默认生成public的函数,这种一般不用
import lombok.AccessLevel;
import lombok.Getter;
public class Book {
@Getter
@Setter
private int id;
private String name;
private double money;
}
// 生成后的代码
public class Book {
private int id;
private String name;
private double money;
public Book() {
}
public int getId() {
return this.id;
}
public void setId(final int id) {
this.id = id;
}
}
直接类上使用:生成对应的Getter,Setter
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Book {
static String s = ""; //不会生成函数
final int pid = 10; // 只会生成get
private int id;
private String name;
private double money;
}
设置权限:AccessLevel.PRIVATE
@Getter(AccessLevel.PRIVATE) // private的get函数
@Log
还有其他的看官网,这两种常用,尤其第二种
import lombok.extern.java.Log;
import lombok.extern.slf4j.Slf4j;
@Log
public class LogExample {
public static void main(String... args) {
log.severe("Something's wrong here");
}
}
@Slf4j
public class LogExampleOther {
public static void main(String... args) {
log.error("Something else is wrong here");
}
}
@ToString @EqualsAndHashCode
// exclude排除字段。of指定字段,只让相关字段出现
@ToString(exclude = {"id"},of = {"name",""})
//exclude不进行判断的字段 of指定相关字段进行比较或计算
@EqualsAndHashCode(exclude = {"id"},of={"name"})
public class Book {
private int id;
private String name;
private double money;
}
@NonNull
// 当字符串穿入为null时抛错
public void test(@NonNull String s){
}