原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9329798.html

Lombok注解解析:

@NonNull
  使用在方法的参数或者构造器的参数上,用于生成null验证。
  Lombok可以识别任何第三方工具的字段上标注的@NonNull名称的注解,并在使用@Data、@AllArgsContruct进行生成方法和构造器时进行null判断。
  而Lombok的@NonNull注解使用在参数之上,仅仅作用到你自定义的方法和构造器之上。
  null判断会采用:

 if (param == null)
throw new NullPointerException("param is marked @NonNull but is null");

  的形式插入,并且会在你方法的开头和构造器的this,super之类的调用之后插入。
@Cleanup
  使用在资源之前,用于表示资源可以被完美自动释放(在代码的执行路径超出资源范围之前)。
  将该注解标注在表示资源的变量之上,比如:@Cleanup InputStream in = new FileInputStream("some/file");
  这样一来,在资源范围结束的位置会自动调用in.close()方法进行资源释放。这个调用会在try...finally...块中调用,来保证调用必定会执行。
  当然,你也可以在注解内部定义释放资源的方法名称,来指定释放资源的具体方法,这适用于没有close()方法的情况下,必须保证这些方法是无参的。
@Getter and @Setter
  标注在字段之上,用于自动生成get、set方法。Boolean类型为is开头。
  生成的get、set方法默认情况之下都是public的,但也可以手动指定范围value=AccessLevel.PUBLIC、AccessLevel.PROTECTED、AccessLevel.PRIVATE、AccessLevel.PRIVATE四种。
  也能标注在类上,表示针对该类中所有的非静态字段进行get、set方法自动生成。
  如果指定某个字段的AccessLevel=AccessLevel.NONE,则可以使该生成动作失效,此时可以手动实现get、set方法,这应用于在这些方法中有一些自定义逻辑的情况下。
@ToString
  标注于类之上,用于生成toString()方法。
  includeFieldNames,默认为true,表示在toString输出时输出字段名称。
  callSuper,默认为false,表示生成toString时不输出超类中的字段内容,若要输出超类中的内容,需要设置为true
  doNotUseGetters,默认为false,表示获取字段值时通过get方法获取,设置为true表示直接通过字段获取
  onlyExplicitlyIncluded,默认为false,表示输出所有非静态字段内容,如果设置为true,则只输出标注有@ToString.Include的字段和方法
@ToString.Include
  标注于字段、方法之上,表示生成toString方法时包含该注解标注的字段和方法,需要与onlyExplicitlyIncluded一起使用。
  rank,默认为0,表示级别,数字越大级别越高,高级别将会优先输出,同级别按照代码顺序输出。
  name,可以为标注的成员(字段或者方法)另起一个名字。
@ToString.Exclude
  标注于字段之上,表示生成toString方法时不包含被该注解标注的字段。那么生成toString方法时会跳过这些字段,
@EqualsAndHashCode
  标注于类之上用于生成hashCode方法和equals方法。
  callSuper,同上
  doNotUseGetters,同上
  onlyExplicitlyIncluded,同上,需要配合@EqualsAndHashCode.Include使用。
@EqualsAndHashCode.Include
  标注于字段或者方法之上,需要与onlyExplicitlyIncluded配合使用,表示将该注解标注的内容添加到实现hashCode和equals方法的内容中去。
@EqualsAndHashCode.Exclude
  标注于字段之上,用于排除不需要参与生成hashCode和equals方法的字段。可单独使用。
@NoArgsConstructor
  用于生成无参构造器,如果类中存在final字段,则会报编译错误。一般结合其他几个构造器注解一起使用提供一个无参构造器,并且不会检查@NonNull标注的字段
  force,默认为false,表示是否针对final字段进行特殊处理,如果将其设置为true,则上面的编译错误将会消失,内部处理为,将final字段初始化为0\false\null
  access,默认为lombok.AccessLevel.PUBLIC,表示public范围的构造器
  staticName,一旦设置该值,则会生成一个静态的“构造器”工厂,其内部包裹着一个私有的构造器,对外提供创建对象的功能,这是明显的工厂模式。
@RequiredArgsConstructor
  用于按照要求生成构造器,所谓的要求就是包含final字段和类似于@NonNull约束标注的字段,会对@NonNull字段进行明确的null检查
  access,同上
  staticName,同上
@AllArgsConstructor
  用于生成包含所有字段的构造器。@NonNull字段会进行null判断检查。
  access,同上
  staticName,同上
@Data
  标注于类之上,是@ToString,@EqualsAndHashCode、@Getter、@Setter、@RequiredArgsConstructor的综合体
  staticConstructor,同staticName
@Value
  可以看成是@Data的变体,表示生成一个不可变类(final类)。没有set方法,只有get方法,字段全部为final private的,类也是final的
  等效于@Getter @FieldDefaults(makeFinal=true, level=AccessLevel.PRIVATE) @AllArgsConstructor @ToString @EqualsAndHashCode
  staticConstructor,同上。
  如果手工实现了任何一个注解的功能,那么该注解将失效,为了使注解起效,你可以在手共实现的方法上添加注解@lombok.experimental.Tolerate,用于将手共实现对lombok隐藏。
  我们可以使用下面两种方式来重写默认为final和private的行为,一是直接在字段上添加accessLevel,二是使用@NonFinal或者@PackagePrivate注解。
@Builder
  标注于类之上,用于生成复杂的builder API,创建构建者模式。
  还可用于标注于构造器和方法之上。
@SneakyThrows
  标注于方法之上用于隐藏异常抛出语句,该注解存在争议,暂不使用
@Log
  @CommonsLog
  @Flogger
  @JBossLog
  @Log
  @Log4j
  @Log4j2
  @Slf4j
  @XSlf4j
@Synchronized
  标注于方法(只能用于静态方法和实例方法)之上,用于表示同步方法,锁可以使用默认的也可以使用自定义的锁(private final )。

第三方工具系列--Lombok常用注解的更多相关文章

  1. 20190905 Lombok常用注解

    Lombok常用注解 val 用于声明类型,将从初始化表达式推断出类型,仅适用于局部变量和foreach循环,而不适用于字段.声明的局部变量为final变量. Java自带类型推断随着JDK版本提升越 ...

  2. Lombok 常用注解

    Lombok Lombok 能以简单的注解形式来简化 java 代码,提高开发人员的开发效率.例如开发中经常需要写的 javaBean,都需要花时间去添加相应的 getter/setter,也许还要去 ...

  3. lombok常用注解@Data@AllArgsConstructor@NoArgsConstructor@Builder@Accessors

    原贴:https://blog.csdn.net/ChenXvYuan_001/article/details/84961992 https://blog.csdn.net/weixin_382293 ...

  4. lombok常用注解

    简介: Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率.例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器.equ ...

  5. [Java 开发利器Lombok] 常用注解演示

    在以往的对象模型编码时,我们需要写一大堆的get/set以及不同的构造函数等.Lombok为我们提供了一个非常好的插件形式. 在大多数的项目中,只需要使用到以下集中Annotation就足够了,如果需 ...

  6. Lombok 常用注解总结

    本文转载自知乎专栏 极乐科技.有所整理. 主要注解 @Data @Setter @Getter @Log4j @AllArgsConstructor @NoArgsConstructor @Equal ...

  7. lombok --- 常用注解解析

    @Data@Getter @Setter @ToString@Cleanup@NonNull@Builder@EqualsAndHashCode      

  8. Lombok - 使用注解让你的JavaBean变得更加简洁

    Lombok - 工具简介: Lombok是一个编译时注释预处理器,有助于在编译时注入一些代码.Lombok提供了一组在开发时处理的注释,以将代码注入到Java应用程序中,注入的代码在开发环境中立即可 ...

  9. Spring注解 系列之Spring常用注解总结

    参考:Spring系列之Spring常用注解总结 (1) Resource 默认是byName的方式进行bean配置,@AutoWired默认是按照byType的方式进行装配bean的:(2)Comp ...

随机推荐

  1. log4j日志的使用

    1.引架包和导配置文件log4j.properties <dependency> <groupId>org.slf4j</groupId> <artifact ...

  2. JS获取form表单数据

    以下代码可放在一个js文件中,以便通用: //获取指定表单中指定标签对象 function getElements(formId, label) { var form = document.getEl ...

  3. ARM指令学习

    跳转指令 直接向程序计数器PC写入i跳转地址值,可以实现在4GB的地址空间中的任意跳转. ARM跳转指令可以完成向前或向后的32MB的地址空间的跳转. -B 跳转指令 -BL 带返回的跳转指令 -BL ...

  4. 多级路由请求js文件路径不对的解决方法

    1.问题描述 最近因为项目的原因开始学习vue,看了几天教程然后开始撸项目.撸的过程也挺顺利,撸了一个多月项目要上线的时候却出现了问题——用history模式打开网站的时候,从导航点到具体的内容页是正 ...

  5. 剑指C++面试

    传闻公司老总欠下巨款,带着小姨子跑路了~  树倒猢狲散,接下来要好好准备面试,以期找到一份满意的工作. 面试准备分下面几个方面进行,形成面试系列文章,文章内容以问答的方式呈现. 1.C++语言基础 传 ...

  6. Oracle数据库用EF操作的示例

    Using EF Oracle Sample Provider with EDM Designer  (from msdn) Many people are asking if it is possi ...

  7. ASP.NET MVC项目实现BasePage基类用作ASPX.CS网页继承

    在ASP.NET MVC项目开发,还是需要创建一些Web Page来实现一些功能,如呈现报表等... 但是一旦项目的.ASPX网页太多了,其中的程序代码也会有代码冗余,出现这些情况,我们得需要对这些代 ...

  8. 程序员跳槽有一份好的简历,offer让你拿到手软

    作者:果汁简历 工欲善其事必先利其器,这是自古以来的道理,所以如果想找到一份好的工作,一定要先整理一份好的简历. 模板 写简历首先要有一个好的模板,我们做技术的不同于 UX,UED,我们不需要那么花哨 ...

  9. Android 视频播放器 (二):使用MediaPlayer播放视频

    在 Android 视频播放器 (一):使用VideoView播放视频 我们讲了一下如何使用VideoView播放视频,了解了基本的播放器的一些知识和内容.也知道VideoView内部封装的就是Med ...

  10. Laravel 5.6: Specified key was too long error

    Laravel 5.6: Specified key was too long error 在Laravel执行以下命令: php artisan migrate 这是由于Laravel5.6设置了数 ...