提效神器之Lombok
准备
- 在IDEA插件中安装Lombok
- 在IDEA设置中启动annotation processing
- 添加依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>xxx</version>
<scope>provided</scope>
</dependency>
常见注解
1.@Getter/@Setter
- 作用类上,生成所有成员变量的getter/setter方法
- 作用于成员变量上,生成该成员变量的getter/setter方法
- 方法控制访问级别set和get注解加上@Getter(AccessLevel.PROTECTED)
@Getter
public class User {
//不想生成get方法
@Getter(AccessLevel.NONE)
int id;
//只会去生成get,不会生成set方法
final String name = "alex";
String phone;
//静态成员变量不会生成set/get方法
static final String pwd = "123";
}
2.@NotNull
- 作用于方法上或者属性,用于非空判断,如果为空则抛异常
3.@NoArgsConstructor
- 生成无参构造器
@AllArgsConstructor
- 生成全参构造器
- final和static类型的不生成
4.RequiredArgsConstructor
指定参数的构造函数,有以下的特征的字段
- final类型未被初始化的属性,标记了@NonNull的属性
- 注意:@NoArgsConstructor不能添加
5.@ToString
- List或者其他集合调试不方便
- 控制台或者日志输出对象,默认打印的是内存地址
- 作用于类,覆盖默认的toString()方法
- 不包括某个字段@ToString(exclude={“age”})
- 只输出某个字段@ToString(of={“name”})
6.@EqualsAndHashCode
- 作用于类,覆盖默认的equals和hashCode,作用于全部属性
- 不包含某个属性
- @EqualsAndHashCode(exclude={“id”})
- 只输出某个属性
- @EqualsAndHashCode(of={“id”})
7.@Data
- 作用于类上,是以下注解的集合
- @ToString
- @EqualsAndHashCode
- @Getter
- @Setter
- @RequiredArgsConstructor
8.@Builder
- 场景:当一个bean类重载了多个构造方法时,并且参数随机使用时,考虑使用构造者模式
9.@Log/@Slf4j
- 作用于类上,生成日志变量,用于记录日志