Java 效率编码 必备插件 Lombok 让代码更优雅

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 该内容是一个关于Lombok插件的教程摘要:介绍了Lombok用于减少Java开发中的模板代码,提升效率;讲解了如何在IntelliJ IDEA中安装Lombok插件,以及在pom.xml中添加依赖;并提到了@Data注解能自动生成getter/setter、equals、hashCode和toString方法,@Slf4j注解自动处理日志,@Builder用于构建对象,以及@AllArgsConstructor和@NoArgsConstructor注解生成构造函数。还鼓励探索更多Lombok的注解用法。

本节大纲

   使用lombok插件的好处

   如何安装lombok插件

   使用lombok提高开发效率

二、使用lombok插件的好处

我们在java开发过程中,经常会有一些常规性的,重复性的工作。比如:

   根据成员变量生成get和set方法

   根据成员变量生成类的构造函数

   重写toString()和hashCode方法

   引入日志框架logFactory,用来打印日志

以上都是一些重复动作,模板代码。每次都手动生成既浪费时间,又增加了大量的冗余代码。我们可以使用lombok插件来解决这个问题。使我们的编码效率得到大幅度的提高!

三、如何安装lombok插件

笔者以InelliJ IDEA为例,安装lombok插件。打开 IDEA 的 File->Settings 面板,并选择 Plugins 选项,然后点击 “Browse repositories”。在搜索框输入”lombok”,结果中找到lombok点击install,然后重启 IDEA。

我们还要在pom.xml里面加上如下依赖,插件生效。

<code class="language-plaintext hljs"><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></code>

   在Spring Boot项目里面不需要加入版本号,spring Boot父项目会代为管理。如果是其他项目,请自行添加版本号!  

四、 使用lombok注解简化开发

4.1 Data注解

在java类上使用@Data注解,将为我们在编译期自动生成

   成员变量的get和set方法

   equals方法

   canEqual方法

   hashCode方法

   toString方法

上图左侧是使用lombok注解Data,右侧是java字节码class文件反编译结果

4.2 Slf4j注解

将在编译期自动帮我们引入Logger日志常量,我们在代码中就直接使用log.info或log.debug打印日志即可。下图中红色代码就用Slf4j注解代替就可以了。

4.3 Builder注解

在Java类上使用Builder注解之后,我们可以使用如下代码为对象属性赋值

<code class="language-plaintext hljs">LombokPOJO lombokPOJO = LombokPOJO.builder().name("kobe").age(39).build();</code>

4.4 AllArgsConstructor注解

AllArgsConstructor注解将为我们在编译期自动生成:全参构造函数。

有全参构造函数注解,自然就有无参构造函数注解:NoArgsConstructor注解。

lombok有非常多的好用的注解,这里给大家集中介绍几个经常会用到的。更多的用法参考github(插件安装图中,有github连接,上图中黄色区


相关实践学习
日志服务之数据清洗与入湖
本教程介绍如何使用日志服务接入NGINX模拟数据,通过数据加工对数据进行清洗并归档至OSS中进行存储。
相关文章
|
7天前
|
Java 程序员 API
Java中的Lambda表达式:简化你的代码
【7月更文挑战第10天】Lambda表达式,这一Java 8的闪亮特性,为开发者提供了一种更为简洁、灵活的编程方式。本文将探讨Lambda表达式如何优化代码结构,提升开发效率,以及在实际项目中应用的一些实例。我们将从基础语法入手,逐步深入到高级用法,最后讨论其性能影响,旨在帮助读者全面理解并有效利用Lambda表达式。
32 20
|
8天前
|
监控 Java Maven
使用AspectJ实现Java代码的运行时织入
使用AspectJ实现Java代码的运行时织入
|
14天前
|
缓存 算法 安全
|
1天前
|
SQL Java 数据处理
实时计算 Flink版产品使用问题之使用MavenShadePlugin进行relocation并遇到只包含了Java代码而未包含Scala代码,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2天前
|
Java
@SneakyThrows 是 Lombok 库中的一个注解
`@SneakyThrows` 是 Lombok 库中的一个注解,它可以让你在方法签名中省略异常声明,而不需要显式地使用 try-catch 块来处理这些异常。当你使用 `@SneakyThrows` 注解时,Lombok 会自动生成相应的 try-catch 代码,将异常封装成运行时异常(通常是 `RuntimeException` 或其子类)。 这个注解在某些情况下可以简化代码,但请注意,它可能会隐藏潜在的问题,因为异常被转换成了运行时异常,这可能导致调用者无法正确处理这些异常。 下面是一个使用 `@SneakyThrows` 的示例: ```java import lombok.S
|
6天前
|
Java 编译器 API
Java中的Lambda表达式:简化代码,提升性能
在Java 8中,Lambda表达式的引入为开发者提供了一种更加简洁、灵活的编程方式。本文将深入探讨Lambda表达式的概念、语法、使用场景及其在Java中的应用示例,帮助读者更好地理解和掌握这一强大工具,从而优化代码结构,提高开发效率。
|
10天前
|
监控 Java Maven
使用AspectJ实现Java代码的运行时织入
使用AspectJ实现Java代码的运行时织入
|
12天前
|
Java Linux Shell
Linux软件安装和部署Java代码
Linux软件安装和部署Java代码
16 0
|
12天前
|
IDE Java 持续交付
Java中的代码质量检查与自动化工具
Java中的代码质量检查与自动化工具
|
15天前
|
Java 测试技术 开发者
Java中设计可测试的代码的最佳实践
Java中设计可测试的代码的最佳实践