Project Lombok:消除Boilerplate代码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36324685/article/details/86533212

Project Lombok 使用

简介:

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

lombok 是一个java的包,它自动装载到你的编辑器和构建工具里,从而增加java的功能,让您能不在写get,set,equas这些方法了,通过一个注释,类就有了一个功能齐全的生成器,自动化关闭资源,全程try catch,等等。

作用:就是消除Boilerplate代码

注解目录:

  1. @Getter and @Setter
  2. @NonNull
  3. @ToString
  4. @EqualsAndHashCode
  5. @Data
  6. @Cleanup
  7. @Synchronized
  8. @SneakyThrows

使用:

1.intellij idea中 lombok 需要插件的支持 要不会编译不通过在这里插入图片描述
2.注解的作用:

1.@Getter and @Setter注解位置都是可以是字段上,可以是类上
在这里插入图片描述
注解到类上就是类的所有变量,注解到字段是 仅字段上生成get set 方法

查看字节码文件:
在这里插入图片描述
2.@NonNull 不能为空 一旦字段设置了这个属性就不能设置空值,方法也能用此注解,一样传值也不能为空
使用地方:类 方法 参数 局部变量
在这里插入图片描述
例子:
在这里插入图片描述
在这里插入图片描述
3.@ToString 对应生成 toString 代码
位置:类上
在这里插入图片描述
使用方式:
在这里插入图片描述
字节码文件:
在这里插入图片描述

4.@EqualsAndHashCode 生成hashCode 编码
有几个参数:

在这里插入图片描述
位置:类上
在这里插入图片描述
总与@Data连用 下面字节码文件
在这里插入图片描述

5.@Data:
位置:类上
在这里插入图片描述
参数:
staticConstructor 设置了后,所有构造函数都是private,但会生成sss static方法获取对象
在这里插入图片描述
相当于@ToString @Setter @Getter @EqualsAndHashCode(callSuper=false)的整合
会生成默认的构造参数
但如果和NonNull 连用就会生成个有参 且不能为空的参数
在这里插入图片描述

字节码文件:
在这里插入图片描述

  1. Cleanup @SneakyThrows 这俩放在一起说:

Cleanup是关闭流的
SneakyThrows 的是在方法报错的时候使用,利用 try catch 包裹方法的
位置:
方法与构造函数 在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
7. @Synchronized
在这里插入图片描述
显然这是 对象锁
资料:
我不是很明白,锁住这个变量的结局,结果显然我认为资料也没说清楚,待续在这里插入图片描述

注意问题:嵌套死循环:

图来源:https://blog.csdn.net/u013202238/article/details/80370868
在这里插入图片描述
内循环,言简意赅就是无限循环,没有出口。

例子如图片的博客已经很清楚了,注意一下hashCode 这个方法,防止多次重复利用

猜你喜欢

转载自blog.csdn.net/qq_36324685/article/details/86533212