Lombok
Lombok介绍
官网
Lombok是什么
Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 中的冗长代码,尤其是对于简单的 Java 对象(POJO),它通过注解实现这一目的。
原理
JSR 269:插件化注解处理API(Pluggable Annotation Processing API)
JDK6提供的特性,在 Javac编译期利用注解搞事情
安装Lombok
导入依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
安装IDEA插件
-
File > Settings > Plugins
-
搜索
Lombok
进行安装
Lombok常用注解
@NoArgsConstructor @RequiredArgsConstructor @AllArgsConstructor
-
@NoArgsConstructor : 用于生成空参构造函数
-
@RequiredArgsConstructor :用于生成被final、@@NonNull修饰的字段的构造函数
-
@AllArgsConstructor :用于生成全参构造函数
@Getter / @Setter
-
用于给生成get、set方法。
-
可以作用在类上和成员变量上。
-
可以通过
AccessLevel
修改方法的访问修饰符,所以对不需要生成get、set方法的成员变量,在其上方添加@Getter(AccessLevel.NONE)
和@Setter(AccessLevel.NONE)
即可。 -
该注解只作用于成员变量上,对被static修饰的变量,不会为其产生相对应的get、set方法,对被final修饰的变量,只会为其生成get方法。
@ToString
-
用于生成toString方法
-
只能作用于类上
-
排除某些字段:
@ToString(exclude = {"username","password"})
-
一定要包含某些字段,如静态变量:
@ToString( of = {"username","password"})
@EqualsAndHashCode
-
用于生成equals、canEqual、hashCode方法
-
同样可以使用exclude 和 of 来指定需要进行判断字段
@NonNull
-
用于生成判断空值校验语句
-
可以添加在方法参数列表中或者成员变量中
@Data
-
集成了四个注解,分别是@RequiredArgsConstructor、
@Getter / @Setter、@ToString、@EqualsAndHashCode
@Builder
-
构造内部类,实现流式编程
-
DemoDataBuilder builder = DemoData.builder().string("String").date(new Date()).doubleData(3.14);
@Cleanup
常规写法:
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("filepath");
out = new FileOutputStream("path2");
byte[] b = new byte[1000];
while (true) {
int r = in.read(b);
if (r == -1) {
return;
}
out.write(b, 0, r);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用注解: