使用 lombok 简化 Java 代码

作者: 程序之心 | 来源:发表于2017-09-14 23:23 被阅读112次

lombok 是一个第三方工具,提供了一些注解功能,可以帮助我们消除冗余、臃肿的 Java 代码,比如 POJO 的 getter/setter 方法、构造方法、hashcode 方法等。lombok 在编译时根据注解生成具体的代码,在虚拟机中运行时与直接定义的属性和方法并没有什么不同。使用 lombok 可以大大减少 Java 代码行数,提高开发效率。

安装

需要在 IDE 中安装 lombok 插件,才能在 IDE 中正常使用 lombok 生成的方法。以 Idea 为例,在 Settings -> Plugins 中搜索 lombok,即可安装插件,然后重启 Idea 使插件生效。

在项目的 pom.xml 文件中,需要引入 lombok 插件和 maven 依赖。

<plugin>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok-maven-plugin</artifactId>
    <version>1.16.8.0</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>delombok</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.14.4</version>
</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 方法;

使用示例

在下面的示例中,我们使用注解生成了无参构造器、有参构造器、 getter/setter 方法、hashcode 方法、equals 方法、toString 方法,生成了一个 slf4j 的日志工具 log,在 test 方法中生成了对于参数 msg 的空指针校验。有了 lombok,Java 代码变得非常简洁。

@Data
@Slf4j
@AllArgsConstructor
@NoArgsConstructor
public class LombokTest {
    @Getter
    @Setter
    private String name;
    private int age;

    public void test(@NonNull String msg){
        log.info(msg);//lombok 提供了 slf4J 日志工具
    }

    public static void main(String[] args){
        LombokTest test = new LombokTest();//无参构造器
        test.setAge(17);//@Data 提供set方法
        test.setName("Lucy");//@Setter 提供set方法
        System.out.println(test.getName());//get方法

        //有参构造器,参数按属性定义顺序传入
        LombokTest lombokTest = new LombokTest("hanmeimei",15);
        //lombok 提供了空指针检测,会抛出异常
        lombokTest.test(null);
    }
}

分享学习笔记和技术总结,内容涉及 Java 进阶、架构设计、前沿技术、算法与数据结构、数据库、中间件等多个领域。关注作者第一时间获取最新内容,公众号同名(阅读体验更佳)。

相关文章

  • springboot 自定义配置信息

    java:(简化起见, 使用lombok) yml

  • 使用 lombok 简化 Java 代码

    lombok 是一个第三方工具,提供了一些注解功能,可以帮助我们消除冗余、臃肿的 Java 代码,比如 POJO ...

  • lombok 注解简单介绍

    一、Lombok 的简单介绍和使用 Lombok是一个可以帮助我们简化 Java 代码编写的工具类,通过采用注解...

  • 2019-04-14 Lombok使用方法

    Lombok使用方法 Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要...

  • Lombok

    简介 Lombok是一个使用的Java类库,用来通过简单的注解形式,简化Java代码。 安装(Eclipse/My...

  • SpringBoot2.0实战 | 第七章:SpringBoot

    Lombok 可以通过简单的注解来简化 Java 代码,提高开发效率 相关知识 Lombok官网:https://...

  • 代码简洁之道-lombok

    Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。Lombok的使用跟引用jar包一样,可...

  • lombok 简化 Java 代码

    lombok 简化 Java 代码 1.介绍 Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 J...

  • Lombok学习与应用

    Lombok LomBok存在的意义 Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例...

  • 简化java代码利器 -- Lombok

    1.优点 自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高...

网友评论

本文标题:使用 lombok 简化 Java 代码

本文链接:https://www.haomeiwen.com/subject/stvjsxtx.html