idea插件

依赖

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.8</version>
  <scope>provided</scope>
</dependency>

常用注解

默认生成的方法是public的,如果要修改方法修饰符可以设置AccessLevel的值,例如:@Getter(access = AccessLevel.PROTECTED)。

  • @Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法

  • @Setter:注解在属性上;为属性提供 setting 方法

  • @Getter :注解在属性上;为属性提供 getting 方法

  • @ToString:注解在类上;生成toString()方法,默认情况下,它会按顺序(以逗号分隔)打印你的类名称以及每个字段。可以这样设置不包含哪些字段@ToString(exclude = "id") / @ToString(exclude = {"id","name"})。

  • @EqualsAndHashCode:注解在类上;生成hashCode()和equals()方法,默认情况下,它将使用所有非静态,非transient字段。但可以通过在可选的exclude参数中来排除更多字段。或者,通过在parameter参数中命名它们来准确指定希望使用哪些字段。

  • @Slf4j:注解在类上;根据用户实际使用的日志框架生成log日志对象。

  • @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象

  • @NoArgsConstructor :注解在类上;为类提供一个无参的构造方法

  • @AllArgsConstructor :注解在类上;为类提供一个全参的构造方法

  • @RequiredArgsConstructor:注解在类上;会生成构造方法(可能带参数也可能不带参数),如果带参数,这参数只能是以final修饰的未经初始化的字段,或者是以@NonNull注解的未经初始化的字段

  • @RequiredArgsConstructor(staticName = "of") : 会生成一个of()的静态方法,并把构造方法设置为私有的。

  • @Cleanup: 可以关闭流

  • @Builder : 被注解的类加个构造者模式

  • @Synchronized: 加个同步锁

  • @SneakyThrows : 等同于try/catch 捕获异常

  • @NonNull: 如果给参数加个这个注解 参数为null会抛出空指针异常

  • @Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。

  • @SneakyThrows: 这个注解用在方法上,可以将方法中的代码用try-catch语句包裹起来,捕获异常并在catch中用Lombok.sneakyThrow(e)把异常抛出,可以使用@SneakyThrows(Exception.class)的形式指定抛出哪种异常

  • @Synchronized : 这个注解用在类方法或者实例方法上,效果和synchronized关键字相同,区别在于锁对象不同,对于类方法和实例方法,synchronized关键字的锁对象分别是类的class对象和this对象,而@Synchronized得锁对象分别是私有静态final对象LOCK和私有final对象lock,当然,也可以自己指定锁对象

具体使用方法参考这里

让火焰净化一切
原文地址:https://www.cnblogs.com/icefoxhz/p/13683707.html