Lombok 使用完全指南

为什么要使用lombok。

  • 普通的 POJO 需要写或是用IDEA等集成开发环境生成大量gettter, setter方法
  • 普通的 POJO 对于 equals 和 hashCode 等方法,也需要自己维护。特别你写接口的时候,如果添加了
    一个字段忘了维护,可能会导致一些bug。
  • 普通的 POJO 没有 builder 的支持,得自己实现该模式。

总之,lombok 极大地简化你的代码,去掉了那些模板代码,让你的POJO看起来更加地清爽(可以只有类名和字段的声明,加上少量的注解)。

jar 包的下载

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.8</version>
    <scope>provided</scope>
</dependency>

IntelliJ IDEA 中 安装lombok插件。

其他集成开发环境(比如 Visual Studio Code, Eclipse), 请参见官方文档 Install部分。
install-lombok-plugin.png

下面主要是对lombok features部分的翻译

val

终于! 无忧无虑的 final 局部变量。 ✌️

var

可变!类型可变的局部变量

@NonNull

我开始停止了焦虑,爱上了空指针 ?

@Getter/@Setter

再也不用写 public int getFoo() {return foo;}了。

ToString

没必要启动debugger来查看你的字段:让 lombok来为你生成一个 ToString 方法吧!

@EqualsAndHashCode

让相等变得简单: 从你对象的字段中生成 hashCode 和 equals 的实现

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

按需生成构造函数: 生成不带参数的, 每个 final/non-null 字段一个参数的,一个字段一个参数的构造函数。

@Data

所有的都合到一起:@ToString@ EqualsAndHashCode,所有字段的 @Getter,所有非 final 字段的 @Setter@RequiredArgsConstructor 的快捷方式!

@Value

让不可变类变得非常容易。

@Builder

… and Bob’s your uncle: No-hassle fancy-pants APIs for object creation!

@SneakyThrows

大胆抛出以前没有人抛出的已检查异常!?

@Synchronized

synchronized 做了正确的事:不要暴露你的锁。

@Getter(lazy=true)

惰性加载是一种美德!

@Log

Captain’s Log, stardate 24435.7: “What was that line again?”

experimental

Head to the lab: The new stuff we’re working on.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值