Lombok到底是什么

先看一下它的官网

Lombok,嗯,真香香香香 英语懒得看?没关系。

它大致意思是:Lombok是一个很牛批的插件(本质是个Java库),项目里一旦引入了Lombok神器之后,你项目中所有诸如:对象的构造函数、 equals()方法,属性的 get()/set()方法等等,这些没有技术含量的代码统统都不用写了,Lombok帮你搞定一切,全部帮你自动生成!

听起来好像是挺不错...

Lombok,嗯,真香香香香 眼见为虚,代码为实,本文亲自尝试一下!

项目中引入Lombok 首先在项目的 pom.xml中引入 Lombok依赖:

Lombok,嗯,真香香香香 除此之外,还要在IDE中安装Lombok插件,并配置:

Lombok,嗯,真香香香香 接下来进行代码实验。

爽!get/set不用写了 以前我们写一个 POJO对象时,比如定义一个课程 Course,需要自己手动写上每个字段的 get()和 set()方法,就像这样:

Lombok,嗯,真香香香香 但是借助于Lombok,一切都变得优雅起来,代码篇幅省了一半

Lombok,嗯,真香香香香 两个注解: @Getter和 @Setter即可方便搞定。

爽!new对象变得优雅了 在没有用Lombok之前,我们假如想new一个对象,我们往往会这么做(以上面的 Course类为例):

Lombok,嗯,真香香香香 引进Lombok之后,我们只需要在 Course类上用上 @Builder注解:

Lombok,嗯,真香香香香 则 Course类对象的创建即可使用 链式表达 的方式一行代码完成:

Lombok,嗯,真香香香香 看到这里,如果你学过设计模式中的 “建造者模式” 的话,一定能猜到 @Builder注解就是一个典型的“建造者模式”的实现案例!

建造者模式的链式调用用起来实在是很爽!

爽!构造函数不用写了 一、全参构造器不用写了

当你在你的类上使用了Lombok的注解 @AllArgsConstructor时:

Lombok,嗯,真香香香香 这时候你的类在编译后会自动生成一个全参构造函数,就像这样:

Lombok,嗯,真香香香香 二、无参数构造器也不用写了

当你在你的类上使用了Lombok的注解 @NoArgsConstructor时:

Lombok,嗯,真香香香香 这时候你的类在编译后会自动生成一个无参构造函数,就像这样:

Lombok,嗯,真香香香香 三、部分参数构造器也不用写了

当你在你的类上使用了Lombok的注解 @RequiredArgsConstructor时:

Lombok,嗯,真香香香香 这时候你的类在编译后会自动生成一个具备部分参数的构造函数,就像这样:

Lombok,嗯,真香香香香 因为 name字段定义成 final,所以 Lombok自动会帮你生成一个部分参数的构造器!!

爽!null判空不用写了 Lombok的 @NonNull注解可以自动帮我们避免空指针判断。该注解作用在方法参数上,用于自动生成空值参数检查,比如:

Lombok,嗯,真香香香香 但是有了Lombok之后,事情就变得简单了,一个注解搞定:

Lombok,嗯,真香香香香 爽!屁股不用擦了 什么意思呢?

假如我们要读取一个 txt文本文件,一般会这样写代码:

Lombok,嗯,真香香香香 注意,这个文件句柄在使用完成之后是一定要手动 close的,否则就有可能资源泄漏。

有了Lombok之后,这种擦屁股活儿统统不用干了,一个 @Cleanup注解即可搞定

Lombok,嗯,真香香香香 爽!异常捕捉不用写了 比如我们打开一个 txt文本文件:

Lombok,嗯,真香香香香 这地方的 FileNotFoundException异常,要么显式地在函数级抛出,要么就像上面一样 try/catch内部消灭。

如果在编码时,不想处理这种繁杂的异常处理,你可以使用Lombok的 @SneakyThrows注解进行简化,比如上面的代码就可以简化为:

Lombok,嗯,真香香香香 这样你编码时就无需处理异常了。

必须友情提示的是:这样写你是爽了,但你很有可能会被队友一顿暴打,因为别人调用你编写的函数,并不能显式的获知需要处理哪些异常,这样容易留坑!

Lombok,嗯,真香香香香 还有很多 好了,受限于篇幅限制,抛砖引玉就到这里了。

上面列举了几个平时项目开发中使用非常频繁的Lombok注解,除此之外,还有诸如像:

@ToString:为类自动生成toString()方法 @EqualsAndHashCode:为类自动生成hashCode和equals实现 @Log:为类自动生成log日志记录 @Synchronized:为类方法或实例方法自动生成synchronized保护 等工具也是非常好用的,大家可以尝试在项目里用起来。

从此,代码5分钟,划水2小时不是梦。。。

懒得搞图片了 直接挂转载连接 https://www.toutiao.com/a6793311172335501827/

### Lombok的定义与用途 Lombok 是一种用于 Java 的库,其核心目标是减少开发者在日常编码中所需的样板代码量。通过引入特定的注解,Lombok 能够自动生成诸如 getter、setter、构造函数、`equals`、`hashCode` 和 `toString` 等常见方法,从而显著简化类的定义和维护过程[^1]。 #### 主要功能概述 以下是 Lombok 提供的一些关键功能及其作用: 1. **自动化生成常规方法** 利用注解如 `@Getter` 和 `@Setter`,Lombok 可以为类中的字段自动创建访问器和修改器方法。这不仅减少了手动编写这些方法的工作量,还降低了因人为错误而导致的问题风险[^2]。 2. **简化构造函数管理** 注解如 `@NoArgsConstructor`、`@AllArgsConstructor` 和 `@RequiredArgsConstructor` 能分别生成无参构造函数、全参构造函数以及基于某些条件(例如 final 字段或带有 `@NonNull` 注解的字段)的构造函数[^3]。 3. **增强对象表示能力** 使用 `@ToString` 注解可以让 Lombok 自动生成一个适合调试使用的字符串表示形式的方法。同样地,借助于 `@EqualsAndHashCode`,能够轻松实现对象间相等性和散列码计算逻辑的标准实现方式[^2]。 4. **支持链式调用风格** 当启用 `@Accessors(chain = true)` 后,所有的 setter 方法都会返回当前实例本身 (`this`),从而使连续多次调用变得更为流畅自然[^3]。 5. **局部变量类型推导** 对于那些希望进一步精简语法糖分的人来说,还可以利用像 `val` 这样的特殊关键字来代替显式的类型声明语句——尽管这种做法并不推荐广泛应用于生产环境当中[^5]。 ```java // 示例代码展示如何使用 @Data 注解快速构建一个完整的 POJO 类 import lombok.Data; @Data public class Person { private String firstName; private String lastName; } ``` 以上例子展示了通过简单添加单个注解即可获得全面覆盖的基础操作接口集合。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值