Project Lombok:解放生产力的 Java 工具包
本文最后修改于 169 天前,其中的信息可能已经有所发展或是发生改变。

前言

Lombok[1]是一套神奇的工具包,它可以自动生成 getters、setters、 equals 、 hashCode 和 toString。不仅如此,它的目的是把你从重复繁琐的代码生成工作中解放出来。

正文

安装

由于代码是在编译时自动生成的,在编译之前代码不会有改变,所以如果需要 IDE 配合工作的话需要安装对应的插件;Lombok 基本上支持所有主流的 IDE 或;这里以 Eclipse 和 IntelliJ IDEA 的安装为例,其他情况可参考官方的安装指导[2],其中作了详细说明。

Eclipse

从官网[1]下载 lombok.jar,执行它就能打开安装向导,选择你需要安装插件的 Eclipse 即可;安装完成之后需要重启一下 IDE。

java -jar .\lombok.jar
Eclipse 中安装 Lombok 插件

IntelliJ IDEA

在设置中找到 Plugins,安装名为 Lombok 的插件就可以了。

IDEA 中安装 Lombok 插件

使用

除了安装对应的插件之外,在使用之前还需要在项目中引入 Lombok 的依赖,如果你是用 Maven 构建项目的话,可以在依赖中引入[3]:

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
    <scope>provided</scope>
</dependency>

插件安装和依赖引入之后就能正常使用 Lombok 了。

常用注解

这里介绍一些常用注解的简单使用方法,更完整全面的介绍以及用法请参考官方文档[4]。

@Getter/@Setter

@Getter 和 @Setter 注解可以作用在属性上,相当于你写了对应的 get、set 方法。需要注意的是当属性类型为 boolean 时,生成的 get 方法为 isXxx。

它们也可以作用在类上,为当前类的所有的非静态成员属性生成对应的 getter 和 setter。

@ToString

作用在类上,相当于自动生成了 toString() 方法。可以带上 includeFieldNames 或者 exclude 来包含或者排除指定的字段。

@xxxConstructor

一共有 @NoArgsConstructor、@RequiredArgsConstructor 和 @AllArgsConstructor 三种注解,根据字面意思生成对应的构造器。

@Data

作用在类上,相当于一次性加上 @Getter、@Setter、@ToString、@RequiredArgsConstructor 和 @EqualsAndHashCode。

@NonNull

作用在参数上,用来检查传入参数是否为 null,如果是就抛出 NullPointerException 异常。

@Log

Log 框架支持,自动在当前类注入名为 log 的变量;

比如 @Slf4j 相当于在类中声明了这么个成员属性:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

之后在类中就可以直接使用日志工具了。

后记

优缺点

Lombok 这个工具的优缺点也很明显,它有很强的侵入性,必须使每个人安装对应的插件才能正常使用。

抉择

根据情况吧,如果使个人项目的话可以凭自己喜好选择使用,如果是团队项目的话还是要和队友商量着来。

并且在使用的时候也不能过度依赖它,有些耦合性太高的注解就没必要使用,对我来说一个 @Data 注解就帮了很大忙了。

参考资料

  1. Project Lombok
  2. Using lombok
  3. Maven Repository: org.projectlombok » lombok
  4. Stable

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇