本文正在参加「Java主题月 – Java 开发实战」,详情查看 活动链接
这是我参与更文挑战的第1天,活动详情查看: 更文挑战
前言
我们在Java项目中会为变量编写大量get/set方法,有没有办法省略不写呢?
这就是Lombok要帮我们做的事情。下面让我们快速了解一下Lombok和Lombok的功能。
Lombok是什么?
Lombok是个java库。并提供IDE插件形式提供代码简化能力,只需要一个注解,就可以不需要实现getter、setter 或 equals 方法。
如何使用Lombok?
使用Lombok非常简单,只需要三步
1、安装Lombok插件
2、添加依赖项
3、在类中添加注解
为了清晰易懂,然我们通过Idea和Eclipse这两个IDE编辑器来分别说明。
如何安装Lombok
Idea安装Lombok,所以不需要安装,这里我们讲一下之前的老版本
2020.3之后的版本已经内置了Lombok,所以不需要安装,这里我们讲一下2020.3之前的老版本安装Lombok插件
- 打开File > Settings > Plugins中的Browse repositories
- 搜索Lombok Plugin
- 安装Lombok Plugin并重启idea即可完成安装
eclipse/myeclipse/sts安装Lombok
下载lombok.jar,然后把lombok.jar放到eclipsemyeclipse/sts的根目录中并运行它,就可以打开
点击install等待安装完成即可。是不是非常简单。
添加Lombok依赖
maven方式
- jdk1.8和以下版本使用该依赖
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
</dependencies>
复制代码
- jdk9及以上版本
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</path>
</annotationProcessorPaths>
复制代码
gradle方式
repositories {
mavenCentral()
}
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20'
testCompileOnly 'org.projectlombok:lombok:1.18.20'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.20'
}
复制代码
ant方式
<javac srcdir="src" destdir="build" source="1.8">
<classpath location="lib/lombok.jar" />
</javac>
复制代码
在ivy中配置lombok
<dependencies>
<dependency org="org.projectlombok" name="lombok" rev="1.18.20" conf="build->master" />
</dependencies>
复制代码
在代码中使用Lombok
Lombok支持的注解和功能
列举几个常用的注解
- @NonNull
永远不会NullPointerException
- @Cleanup
自动资源管理,相当于close()
- @Getter
实现字段的get方法
- @Setter
实现字段的set方法
- @ToString
实现toString方法
- @EqualsAndHashCode
实现hashCode和equals
- @Data
相当于几个注解一起:@ToString, @EqualsAndHashCode, @Getter在所有字段和@Setter、@RequiredArgsConstructor
代码中使用示例
@Getter
@Setter
public class Demo implements Serializable {
private String id;
}
复制代码
这样,我们不需要写set和get方法就可以调用getId(),setId(String id)同样的方法了。
本文正在参加「Java主题月 – Java 开发实战」,详情查看 活动链接