Lombok包下常用注解

前言

  Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。

  例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。

  Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。

  出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。

  这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁些。

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

常用注解

  1. @Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
  2. @Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。
  3. @Setter :注解在属性上;为属性提供 setting 方法
  4. @getter :注解在属性上;为属性提供 getting 方法
  5. @NoArgsConstructor :注解在类上;为类提供一个无参的构造方法
  6. @AllArgsConstructor :注解在类上;为类提供一个全参的构造方法
  7. @RequiredArgsConstructor:注解在类上;生成一个指定名称的静态方法,返回一个调用相应的构造方法产生的对象
  8. @NonNull : 如果给参数加个这个注解 参数为null会抛出空指针异常
  9. @EqualsAndHashCode  注解在类上;提供equals和hashCode方法
  10. @Cleanup : 可以关闭流
  11. @Builder : 被注解的类加个构造者模式
  12. @Synchronized : 加个同步锁
  13. @SneakyThrows : 等同于try/catch 捕获异常
  14. @Log:

    注解在类上;省去从日志工厂生成日志对象这一步,直接进行日志记录,具体注解根据日志工具的不同而不同,同时,可以在注解中使用topic来指定生成log对象时的类名。

官方文档:https://projectlombok.org/features/all

使用介绍:https://blog.csdn.net/sunsfan/article/details/53542374

posted @ 2019-06-29 20:33  王大军  阅读(201)  评论(0编辑  收藏  举报