首页 > 其他分享 >提效神器之Lombok

提效神器之Lombok

时间:2023-03-02 11:13:50浏览次数:42  
标签:EqualsAndHashCode final get 生成 神器 Getter ToString 提效 Lombok

提效神器之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

  • 作用于类上,生成日志变量,用于记录日志

标签:EqualsAndHashCode,final,get,生成,神器,Getter,ToString,提效,Lombok
From: https://www.cnblogs.com/Jasmine-smi/p/17171086.html

相关文章