实战项目中常用到Lombok的注解详情

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
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Lombok 是一个开源的Java库,它可以帮助Java开发人员减少Java代码的冗余并增加代码可读性。它通过注解的方式,自动为Java类生成一些常用的方法和代码。 以下是Java Lombok注解的一些常用的示例: @Data:该注解可以自动生成Java类的getter、setter、equals、hashCode、toString等方法。 @NoArgsConstructor:该注解可以自动生成一个无参构造函数。 @AllArgsConstructor:该注解可以自动生成一个包含所有参数的构造函数。 @Builder:该注解可以自动生成一个Builder模式的Java类。 @Slf4j:该注解可以自动生成一个名为log的slf4j日志对象。 @EqualsAndHashCode:该注解可以自动生成equals和hashCode方法。 @Getter / @Setter:该注解可以自动生成getter和setter方法。 @ToString:该注解可以自动生成toString方法。 @NonNull:该注解可以在参数前使用,表示该参数不能为空。 @RequiredArgsConstructor:该注解可以自动生成一个包含必需参数的构造函数。 @Cleanup:该注解可以自动关闭资源,如IO流等。 @Synchronized:该注解可以生成同步方法。 @Value:该注解可以生成一个不可变的Java类。 @Accessors:该注解可以设置getter和setter的链式调用方式。 @UtilityClass:该注解可以生成一个工具类。 总的来说,Java Lombok注解可以让Java开发人员更加专注于业务逻辑的实现,而不需要关心Java类的getter、setter、equals、hashCode、toString等方法的实现细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值