Lombok是一个编译时注释预处理器,有助于在编译时注入一些代码。Lombok提供了一组在开发时处理的注释,以将代码注入到Java应用程序中,注入的代码在开发环境中立即可用。在详细介绍之前,可以去其官网看一下作者提供的视频,视频中阐述了Lombok 的简单用法。https://projectlombok.org/
示例代码:
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
</dependencies>
添加好 Maven 依赖之后,就可以在代码中使用 Lombok 的注解来简化代码了。
Jetbrains IntelliJ IDEA Editor
完全兼容 Lombok,要在 IDEA 中使用 Lombok,那就需要在IntelliJ IDEA 中安装 Lombok IntelliJ plugin
插件,以下为安装步骤:
Go to File > Settings > Plugins
Click on Browse repositories...
Search for Lombok Plugin
Click on Install plugin
Restart IntelliJ IDEA
具体安装过程可参考官网或者插件 Github 主页。
你如果是使用IDEA的话,在当前文件上按command+F12
,或者长按command
在左侧找到Structure
,就能够看到 lombok 为当前类生成的方法。
@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
示例代码:
import lombok.Data;
@Data
public class Person {
private String firstName;
private String lastName;
private String job;
}
@Setter/@Getter:注解在属性或类上;为属性提供 Setter/Getter 方法
示例代码:
import lombok.Getter;
import lombok.Setter;
// 只为 firstName 生成Getter、Setter 方法
public class Person {
@Getter
@Setter
private String firstName;
private String lastName;
private String job;
}
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Person {
// 为所有字段生成Getter、Setter 方法
private String firstName;
private String lastName;
private String job;
}
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@Value:此注解集@equals()、@hashCode()、@toString()、@Getter()于一身。
示例代码:
import lombok.Value;
import lombok.experimental.NonFinal;
@Value
public class Person {
/** 类本身以及类中所有的字段都是private final类型的,不会生成Setter方法。
* 可以通过显式指定某个注解覆盖掉默认的属性。
* 通过@NonFinal注解修饰的字段,不是final类型的。
*/
String firstName;
String lastName;
@NonFinal
String job;
}
@NoArgsConstructor/@AllArgsConstructor: 自动生成无参数构造函数/全参构造函数。
示例代码:
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
public class Person {
private String firstName;
private String lastName;
private String job;
}
@NonNull :修饰方法、构造函数的参数或者类字段,Lombok自动生成一个非空检测语句。
示例代码:
import lombok.NonNull;
public class Person{
public String Example(@NonNull String sum){
return null;
}
}
@Synchronized 将方法变成同步方法
@SneakyThrows:将受检异常转换为非受检异常,避免抛出或尝试语句。
lombok 项目官网上还有一些其他注解的用法,此处就不列举了,附链接:https://projectlombok.org/features/all
Lombok - 使用注解让你的JavaBean变得更加简洁
原文:https://www.cnblogs.com/zhangyangdev/p/13504849.html