Java代码精简神器Lombok的使用
本文最后更新于 981 天前,其中的信息可能已经有所发展或是发生改变。

Java 代码中有很多冗余、臃肿的代码(如:Getter/Setter、构造方法、hashCode 方法等)lombok 是一款 IDE 插件,其专注于消除此类代码,以达到代码简洁高效的目的。它同时提供了 IDEA 以及 Eclipse 相关的插件,本文以 IDEA 为例,做一些相关的示例

准备工作

1)IDEA 中安装相关的插件,如图:

2)IDEA 编译器相关设置,如图:

构建项目

以 SpringBoot 项目为例,以下为 pom.xml 文件:

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <optional>true</optional>
</dependency>

常用注解

lombok 提供了很多注解,常用的如下。

注解作用
Getter注解在属性上,提供 getter 方法;
Setter注解在属性上,提供 setter 方法;
AllArgsConstructor注解在类上,提供构造方法,参数为所有属性;
NoArgsConstructor注解在类上,提供无参构造方法;
Data注解在类上,提供所有属性的 getter 方法、setter 方法以及 equals、hashCode、toString 等方法;
Log注解在类上,提供一个名为 log 的属性,类型为 java.util.logging.Logger,也可使用 @Log4j、@Log4j2、Slf4j 等其他注解;
ToString注解在类上,提供 toString 方法;
EqualsAndHashCode注解在类上,提供 equals、hashCode 方法;
Synchronized注解在方法上,提供 synchronized,可以指定锁的名称;
NonNull注解在方法参数上,提供对参数的校验,防止空指针异常;
Cleanup注解在局部变量上,提供对资源的关闭,即调用 close 方法;

使用示例

package com.example.lombok;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;

@Data
@ToString
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer uid;
    private String username;
    private String password;
}

@Slf4j
class UserService {

    public static void main(String[] args) {
        User user = new User().setUid(1).setUsername("username").setPassword("123");
        log.debug("user = {}", user);
    }
}

直接运行看下结果是否正确吧:

21:26:31.742 [main] DEBUG com.example.lombok.UserService - user = User(uid=1, username=username, password=123)

如此一来,代码变得相当的简洁明了。

最终生成的代码结构

lombok 通过插件在编译期间根据注解自动生成了相关的代码,通过下面的代码结构图可以看出一些端倪:

暂无评论

发送评论 编辑评论

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