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. Early access to future java features such as val, and much more.
Lombok是JAVA的一个类库插件,可以帮助我们构建Java对象和对象编辑,再也不用去写GET/SET/Equals等方法,除此之外还有更多好用的功能等你来发掘。 lombok官网下载地址
在IntellJ idea中使用
- 需要在官网中下载对应的jar包导入到项目中可以使用离线导入,也可以使用maven方式
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
在Itellij Idea开发工具中需要去下载一个编译插件并开启注解配置功能
安装lombok插件: 在Idea工具中按下快捷键
Ctrl+Alt+S
进入配置(Settings)界面,找到Plugins
菜单点击底部Browse repositories按钮进入插件搜索界面–>在搜索框中输入lombok关键字进行搜索,在列表中找到·Lombok Pugin·项,点击右侧的Instanll按钮等待安装,安装完毕后重启idea工具,到此Idea中就可以识别lombok的注解了。图解如下:
如图所示,我的右侧图标不是绿色的Install按钮,是一个带删除图标的Uninstall按钮,这个表示已经安装了,如果要卸载则点击此按钮。
到这里注意 只是Idea可以识别但是运行测试的时候,还是不能使用,如果要正常使用还需要去开启注解配置功能。通过按
Ctrl+Alt+s
进入配置界面,找到Build,Execution,Deployment –> Compiler –> Annotation Processors菜单,勾选 Enable annotation processors复选框即可。
lombok 类库中常用的注释
注解 | 描述 |
---|---|
@Data | 该注解使用lombok工具箱中最常用的注解,它结合的功能@ToString,@EqualsAndHashCode, @Getter和@Setter,也会触发Lombok的构造函数生成。这会添加一个公共构造函数,它将任何@NonNull或final 字段作为参数 |
@Setter/@Getter | 注解在属性上;为属性提供 getting/setting 方法,注解在类上则提供所有属性的getting/setting方法 |
@Log4j | 注解在类上;为类提供一个 属性名为log 的 log4j 日志对象 |
@NoArgsConstructor | 注解在类上;为类提供一个无参的构造方法 |
@AllArgsConstructor | 注解在类上;为类提供一个全参的构造方法 |
@NonNull / @NotNull | 注解在字段或方法上,提供Null判断,避免空指针异常 public NonNullExample(@NonNull Person person) {} |
@ToString | 此批注生成该toString 方法的实现 @ToString(callSuper = true,exclude =“someExcludedField”) |
@EqualsAndHashCode | 这个类级注释将导致Lombok生成两者 equals和hashCode方法 @EqualsAndHashCode(callSuper = true,exclude = {“address”,“city”,“state”,“zip”}) |
@Builder | 对象构建使用 Student stu = Student.builder().id(id).name(name).idCard(idCard).gender(gender).build(); |
@Cleanup | 该@Cleanup注释可以用来保证分配的资源被释放,当使用带注释的局部变量时@Cleanup,任何后续代码都包含在一个 try/finally块中,该块保证在当前作用域的末尾调用cleanup方法。默认情况下,@Cleanup 假设清理方法命名为“close”,与输入和输出流一样。但是,可以为注释的value参数提供不同的方法名称。只有不带参数的清理方法才能与此注释一起使用。@Cleanup InputStream in = new FileInputStream(args[0]); |