Lombok使用手册
目录
安装
Maven
|
|
官方文档 | 描述 |
---|---|
https://projectlombok.org/changelog | 变更日志 |
https://projectlombok.org/setup/maven | 安装手册 |
https://projectlombok.org/features/ | 使用说明书 |
下面是一些常用的注解。
var
val
等效于使用 final var
。
|
|
用来修饰局部变量,相当于将变量声明为 final。
@NonNull
修饰方法形参,如果形参为 null,则抛NullPointerException
。
@Cleanup
@Cleanup 相当于 finally 模块,主要用来释放资源的。
@Setter
帮你实现一些setXXX()
方法
@Getter
帮你实现一些getXXX()
方法
==注意==:
如果属性是基本类型boolean
,则 get 方法的前缀不是 get 而是 isXXX
。如果使用 boolean 的包装类型Boolean
,则方法前缀依旧保持为 get。
@ToString
见名知意,就是帮你实现toString()
方法。
排除某个字段属性被 toString
|
|
被@ToString.Exclude
注解修饰的属性不会被添加到 toString 中。
@EqualsAndHashCode
@NoArgsConstructor
@RequiredArgsConstructor
为类属性生成构造方法。主要为以下属性生成构造方法。
- 被
@lombok.NonNull
注解的属性 - 被
final
修饰的常量属性
用处
配合 final 生成构造方法注入
|
|
我们看字节码文件。
|
|
从而实现了构造方法注入依赖。
@AllArgsConstructor
@Data
All together now: A shortcut for @ToString, @EqualsAndHashCode, @Getter on all fields, and @Setter on all non-final fields, and @RequiredArgsConstructor!
大概意思就是说这个注解,1 个顶 5 个。
具体顶哪 5 个,就是上面描述的。
源码:
|
|
编译完的
字节码 class 文件:
|
|
从字节码中看,补充了getXXX
,setXXX
,equals
,canEqual
,hashCode
,toString
。
排除某个方法
@Data 默认帮我们实现了多个方法,如果我们不想实现其中的某个方法,如何排除掉呢,不支持。
@Value
相当于 @Data,且给属性加上 final ,但是没有setXXX
方法。