注解 | 描述 |
---|---|
@Getter and @Setter | 代替 getter 和 setter 方法 |
@Notnull | 用于标记类中不能允许为 null 的字段或者参数上,任何使用该字段的地方都生成空指针判断代码,若@NonNull 标记的变量为 null,抛出 NullPointException (NPE) 异常。 |
@FieldNameConstants | 作用于类,生成一个包含所有成员变量的内部类或者内部枚举,内部类中每个字段值即为字段名,并且内部类字段值不可变 |
@ToString | 会给类自动生成易阅读的 toString 方法,带上有所非静态字段的属性名称和值,这样就十分便于我们日常开发时进行的打印操作 |
@EqualsAndHashCode | 用于根据类所拥有的非静态字段自动重写 equals 方法和 hashCode 方法,方便我们用于对象间的比较 |
@NoArgsConstructor | @NoArgsConstructor 为实体类生成无参的构造器方法 |
@AllArgsConstructor | 为实体类生成除了static修饰的字段之外带有各参数的构造器方法。 |
@RequiredArgsConstructor | 为实体类生成指定字段的构造器方法,而这些字段需要被 final,或者 @NonNull修饰。 |
@CommonsLog | 等价效果: private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class); |
@Flogger | 等价效果: private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); |
@JBosLog | 等价效果: private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class); |
@Log | 等价效果: private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName()); |
@Log4j | 等价效果: private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class); |
@Log4j2 | 等价效果: private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class); |
@Log4j2 | 等价效果: private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class); |
@Slf4j | 等价效果: private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class); |
@XSlf4j | 等价效果: private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class); |
@Data | 相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集 |
@Builder | 提供了一种基于建造者模式的构建对象的 API。使用 @Builder 注解为给我们的实体类自动生成 builder() 方法,并且直接根据字段名称方法进行字段赋值,最后使用 build()方法构建出一个实体对象 |
@SuperBuilder | @Builder 不支持父类字段的生成,当一个实体类存在父类时,@Builder 只能生成当前类的字段构建方法。若需要用到父类的字段方法时, Lombok 提供了新的注解 @SuperBuilder 来应对这种情况 |
@Cleanup | 用于标记需要释放清理操作的资源对象变量,如 FileInputStream, FileOutputStream 等,标记之后资源对象使用完毕后,就会被自动关闭和清理,实际上这里 Lombok 实现效果与 Java7 特性 try with resource 一样, 为我们屏蔽了关闭资源的模板代码 |
@Singular | – |
@Delegate | 作用于容器变量,为该变量生成一堆常用的方法,这些方法都是容器中的方法 |
@Value | 作用于类,使所有的成员变量都是 final 的,是以下注解的集合:@ToString、@EqualsAndHashCode、@Getter、@RequiredArgsConstructor;此注解和 Spring 中的 @Value 撞名,在 import 时不要弄错了 |
@Accessors | 该注解设置为chain=true,生成setter方法返回this(也就是返回的是对象),代替了默认的返回void。 |
@Wither | @Wither是在lombok v0.11.4中作为实验性功能引入的。在lombok v1.18.10中,@Wither被改名为@With,并从实验包中移出,进入核心包。 |
@With | 克隆对象,修改一个值而保留其他值不变 |
@SneakyThrows | 主要用于在没有 throws 关键字的情况下,隐蔽地抛出受检查异常,为我们平常开发中需要异常抛出时省去的 throw 操作 |
@val | 作用于类、变量,主要用于声明变量的类型,注解将从初始化程序表达式中推断类型,生成的变量是 final 不可以变。作用于类时,需要加 @,但没什么用,作用于变量时则不需要 @ 并且只适用于局部变量 |
@var | 和@val类似,var 所声明的变量是非 final 的,val 所声明的变量是 final 的。 |
Lombok 注解
最新推荐文章于 2023-06-29 15:23:25 发布