Lombok是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。
-
@Data : 注解在类上, 为类提供读写属性,可以省去代码中大量的get()、 set()、 toString()等方法。 此外还提供了 equals()、hashCode()、toString() 方法。
-
@Value:如果我们需要一个不可变的对象类,那么就用该注解。它在编译是自动添加Getter、toString()、equals()、hashCode()以及一个全参的构造器。
-
@ToString:作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段。
-
@Builder: 它把我们的Bean类包装为一个构建者模式,编译时增加了一个Builder内部类和全字段的构造器。
-
@AllArgsConstructor : 注在类上,提供类的全参构造。
-
@NoArgsConstructor : 注在类上,提供类的无参构造。
-
@RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器。
-
@Setter : 注在属性上,提供 set 方法。
-
@Getter : 注在属性上,提供 get 方法。
-
@EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法。
-
@Cleanup:该注解的对象,如Stream对象,如果有close()方法,那么在该对象作用域离开时会自动关闭。
-
@Log4j/@Slf4j : 注在类上,提供对应的 Logger 对象,变量名为 log。
-
@NonNull:主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。
-
@SneakyThrows:自动捕获检查异常,主要作用是将检查 异常包装为运行时异常,编码时就无需处理异常了。
-
@Synchronized:作用于方法,可以替换synchronize关键字或lock锁。
-
@Singular 只能应用于 lombok 已知的集合类型。目前,支持的类型有:
1.Iterable、Collection、List (一般情况下,生成的不可修改的 ArrayList) 2.Set、SortedSet、NavigableSet (一般情况下,生成可变大小不可修改的 HashSet 或者 TreeSet) 3.Map、SortedMap、NavigableMap (一般情况下,生成可变大小不可修改的 HashMap 或者 TreeMap)
-
@Accessors:作用于类、变量。作用Accessor的中文含义是存取器,@Accessors用于配置getter和setter方法的生成结果,它有三个属性如下:
fluent:设置为 true 时,chain 默认为 true,setter / getter 方法名即为字段名,默认 false chain:设置为 true 时,可以链式调用,即 setter 方法返回 this。默认 false prefix:指定前缀,生成 getter / setter 方法会去掉指定的前缀(需要遵守驼峰命名)
-
@ExtensionMethod:作用于类,向类添加方法,无需创建新的子类,包含两个属性如下:
value:指定添加哪个类的方法,类名.class suppressBaseMethods:如果为 false,基础类型不能调用方法,默认为 true
-
@FieldDefaults:作用于类,定义变量的访问修饰符以及是否加final,共两个属性如下(必须至少声明一个属性):
level:指定变量的访问修饰符 makeFinal:是否加 final,默认 false