Lombok
Lombok 常用注解
Lombok是一个编译时注释预处理器,有助于在编译时注入一些代码。Lombok提供了一组在开发时处理的注释,以将代码注入到Java应用程序中,注入的代码在开发环境中立即可用。
@Data
注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter / @Getter
注解在属性或类上;为属性提供 Setter/Getter 方法
@Value
此注解集@equals()、@hashCode()、@toString()、@Getter()于一身。
@NoArgsConstructor / @AllArgsConstructor
自动生成无参数构造函数/全参构造函数。
@ToString
用于自动生成类的 toString() 方法
@EqualsAndHashCode
用于自动生成 equals() 和 hashCode() 方法。
@SneakyThrows
用于在方法中抛出受检查异常(checked exception)而无需在方法签名中声明或捕获异常。
@Builder
当使用 @Builder 注解时,Lombok 会在编译过程中生成一个新的内部类,该内部类包含所有字段的 setter 方法,以及一个 build() 方法用于创建对象。这个内部类的名称可以根据配置的 builderClassName 属性进行自定义。
@NonNull
修饰方法、构造函数的参数或者类字段,Lombok自动生成一个非空检测语句。
@Log4j / @Slf4j
注解在类上;为类提供一个 属性名为log的日志对象
@Accessors
当属性字段在生成 getter 和 setter 方法时,做一些相关的设置。当它可作用于类上时,修饰类中所有字段,当作用于具体字段时,只对该字段有效。
- fluent 属性
不写默认为false,当该值为 true 时,对应字段的 getter 方法前面没有 get,setter 方法前没有 set。s.setName("jack") -> s.name("jack")
,String name = s.getName() -> String name = s.name()
- chain 属性
不写默认为false,当该值为 true 时,对应字段的 setter 方法调用后,会返回当前对象。Student stu = s.setName("jack")
- prefix 属性
该属性是一个字符串数组,当该数组有值时,表示忽略字段中对应的前缀,生成对应的 getter 和 setter 方法。