懒人工具之Lombok(了解)
Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。
Lombok既是一个IDE插件(2020的Idea已经集成了),也是一个项目要依赖的jar包。
- Lombok是依赖jar包的原因:因为编译时要用它的注解;
- 是插件的原因:是他要在编译器编译时通过操作AST(抽象语法树)改变字节码生成。也就是说他可以改变java语法。他不像Spring的依赖注入或者Hibernate的orm一样是运行时的特性,而是编译时的特性。
1 Lombok的使用步骤
-
IDEA引入Lombok依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> <!--在编译阶段生效,不需要打入包中 Lombok在编译期将带Lombok注解的Java文件正确编译为完整的Class文件 --> <scope>provided</scope> </dependency>
-
在代码中引入依赖
2 Lombok的常用注解
Lombok拥有的注解可以通过settings去找到对应插件的官方说明,之后我们给出几个常用的注解。
注解名称 | 功能 |
---|---|
@Setter | 自动添加类中所有属性相关的 set 方法 |
@Getter | 自动添加类中所有属性相关的 get 方法 |
@Builder | 使得该类可以通过 builder (建造者模式)构建对象 |
@RequiredArgsConstructor | 生成一个该类的构造方法(未赋值的final字段),禁止无参构造 |
@ToString | 重写该类的toString() 方法 |
@EqualsAndHashCode | 重写该类的equals() 和hashCode() 方法 |
@Data | 等价于上面的@Setter 、@Getter 、@RequiredArgsConstructor 、@ToString 、@EqualsAndHashCode |
当要用到
equals()
和hashCode()
的时候,自己重写即可,@EqualsAndHashCode一般不用,因为它在一些场景下使用是错误的。
可以参考一下这位仁兄的博客:https://www.cnblogs.com/death00/p/11722152.html