eclipse集成lombok,以及lombok注解的使用
一。lombok简介
Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode()和equals()这样的方法。
二。安装lombok
1.首先下载Lombok.jar包,下载地址:http://projectlombok.org/download.html
2.下到本地后双击运行Lombok.jar,数秒后将弹出一框,以确认eclipse的安装路径 ,如图:
注意如果eclipse没有安装到默认目录,那么需要点击Specify location..选择eclipse.exe所在的路径,然后点击Install/update即可完成安装。
3.关闭重启eclipse (IDE 使用 lombok 是需要安装的,如果不安装,IDE 则无法解析 lombok 注解。)
4.项目里pom文件直接加入依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
</dependency>
三。lombok一些注释的使用方法:
lombok使用过程中主要是靠注解起作用的,官网上的文档里面有所有的注解,这里不一一罗列,只说明其中几个比较常用的。
1.@NonNull
: 可以帮助我们避免空指针。
使用lombok:
import lombok.NonNull;
public class NonNullExample extends Something {
private String name;
public NonNullExample(@NonNull Person person) {
super("Hello");
this.name = person.getName();
}
}
不使用lombok:
public class NonNullExample extends Something {
private String name;
public NonNullExample(@NonNull Person person) {
super("Hello");
if (person == null) {
throw new NullPointerException("person");
}
this.name = person.getName();
}
}
2.@Cleanup
: 自动帮我们调用close()
方法。
使用lombok:
import lombok.Cleanup;
import java.io.*;
public class CleanupExample {
public static void main(String[] args) throws IOException {
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);
byte[] b = new byte[10000];
while (true) {
int r = in.read(b);
if (r == -1) break;
out.write(b, 0, r);
}
}
}
不使用lombok:
import java.io.*;
public class CleanupExample {
public static void main(String[] args) throws IOException {
InputStream in = new FileInputStream(args[0]);
try {
OutputStream out = new FileOutputStream(args[1]);
try {
byte[] b = new byte[10000];
while (true) {
int r = in.read(b);
if (r == -1) break;
out.write(b, 0, r);
}
} finally {
if (out != null) {
out.close();
}
}
} finally {
if (in != null) {
in.close();
}
}
}
}
3.@Getter / @Setter
: 自动生成Getter/Setter方法
使用lombok:
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
public class GetterSetterExample {
@Getter @Setter private int age = 10;
@Setter(AccessLevel.PROTECTED) private String name;
}
不使用lombok:
public class GetterSetterExample {
private int age = 10;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
protected void setName(String name) {
this.name = name;
}
}
四。全部的注解和讲解
@Data : 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法。
@Getter/@Setter : 可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象。
@Slf4j : 注解在类上;为类提供一个 属性名为log 的 log4j 日志对象。
@NoArgsConstructor : 注解在类上;为类提供一个无参的构造方法。
@AllArgsConstructor : 注解在类上;为类提供一个全参的构造方法。
@NonNull : 注解在属性上,用来校验参数非空,可以帮助我们避免空指针。
@ToString : 注解在类上,重写toString方法。此外还有注解:val,var,@EqualsAndHashCode,@RequiredArgsConstructor,@Cleanup,@Value,@Builder,@SneakyThrows,@Synchronized,experimental。
详细的学习地址请看官网:https://projectlombok.org/features/all下一篇: Go语言基础单元测试与性能测试示例详解
推荐阅读
-
啰嗦的 java,简洁的 lombok —— lombok 的使用及简单实现单例模式注解
-
啰嗦的 java,简洁的 lombok —— lombok 的使用及简单实现单例模式注解
-
Springboot中使用lombok的@Data注解方式
-
Lombok插件的安装以及使用
-
Java中lombok的@Builder注解的解析与简单使用详解
-
eclipse集成lombok,以及lombok注解的使用
-
Java —— 自动生成get、set方法(使用lombok的注解@Getter @Setter)
-
maven项目添加lombok并解决使用@data注解无set/get方法的问题
-
SpringMVC集成Swagger插件以及Swagger注解的简单使用
-
Springboot中使用lombok的@Data注解方式