一文搞懂Lombok Plugins使用与原理

在这里插入图片描述

目录


文章所属专区 超链接


1.前言

2.什么是Lombok

Lombok是一款强大的Java工具,主要用于简化Java开发过程,尤其是对于简单的Java对象(POJO)。它通过注解的方式,帮助开发者消除Java的冗长代码,如getter、setter、equals、hashCode等方法,从而大大提高开发效率

3. IntelliJ安装Lombok

需要注意的是:IDEA 2020.3版本内置了lombok插件,所以无需在IntelliJ额外安装了,可能会出现其他问题!!!

3.1通过IntelliJ的插件中心安装

setting->Plugins->搜索Lombok Plugins 安装,重启即可
在这里插入图片描述

3.2在项目中使用Lombok Plugins

在maven中,在相关pom文件直接加入依赖

<dependency>     
	<groupId>org.projectlombok</groupId>     
	<artifactId>lombok</artifactId>     
	<version>1.16.8</version> 
</dependency>

4.Lombok 注解大全说明

4.1POJO类常用注解

@Data:注解在类上,相当于同时使用了@ToString、@EqualsAndHashCod- e、@Getter、@Setter 和@RequiredArgsConstrutor 这些注解,对于 POJO 类十分有用
@ToString :这个注解可以使类自动覆写 toString 方法。在使用时,你可以添加其他参数,例如 @ToString(exclude=”id”) 表示排除id属性,或者 @ToString(callSuper=true, includeFieldNames=true) 表示调用父类的 toString 方法,包含所有属性。
@Getter/@Setter:这两个注解可以为属性生成 getter 和 setter 方法。在使用时,你可以选择访问范围,比如是否公开所有属性,或者只对某些属性进行getter和setter。
@NonNull:这个注解可以用于方法参数,它会在方法内部对参数进行非空判断,如果参数为空,则会抛出 NullPointerException。
@Cleanup: 这个注解可以用于局部变量,它会在变量离开作用域前自动清理资源。
@EqualsAndHashCode:这个注解可以使类自动生成 equals 方法和 hashCode 方法。在使用时,你可以选择是否覆盖父类的 equals 和 hashCode 方法,以及是否包含哪些属性。
@Builder:对于加了@Builder注解的方法,可以知道,编译后这个类多了一个builder()方法,以及一个静态内部类。通过这个注解可以在类上创建一个对象,并且可以链式的进行赋值。

import lombok.Builder;
import lombok.ToString;

@Builder
@ToString
public class User {
    private String name;
    private int age;
    private String email;
}

ser user = User.builder()
                    .name("Tom")
                    .age(25)
                    .email("tom@example.com")
                    .build();

4.2其他注解

@NoArgsConstructor:这个注解用于在类上,这个注解可以生成无参构造方法。使用方法是在类上直接使用该注解即可。示例如下:
@RequiredArgsConstructor:这个注解同样用于在类上,但是它要求所有的构造方法参数都必须被标注。使用方法是在类上直接使用该注解即可。
@AllArgsConstructor:这个注解也用于在类上,与@RequiredArgsConstructor类似,但是它要求所有的构造方法参数都必须被标注,包括那些没有在类中声明的参数。示例如下:
@Value:用在类上,是@Data 的不可变形式,相当于为属性添加 final 声明,只提供 getter 方法,而不提供 setter 方法
@SneakyThrows:自动抛受检异常,而无需显式在方法上使用 throws 语句
@Log:根据不同的注解生成不同类型的 log 对象,但是实例名称都是 log,有六种可选实现类
@CommonsLog Creates log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
@Log Creates log = java.util.logging.Logger.getLogger(LogExample.class.getName());
@Log4j Creates log = org.apache.log4j.Logger.getLogger(LogExample.class);
@Log4j2 Creates log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
@Slf4j Creates log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
@XSlf4j Creates log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

5.Lombok常见问题

Lombok常见问题
最全一篇Lombok使用讲解,及原理,真香啊
java lombok注解字段默认值 lombok常用注解

6.总结

Lombok是一款Java开发插件,它提供了一系列的注解,这些注解可以帮助开发者消除Java开发中的冗长和繁琐的代码,尤其对于简单的Java模型对象(POJO)。

7.参考

十分钟搞懂Lombok使用与原理
最全一篇Lombok使用讲解,及原理,真香啊
java lombok注解字段默认值 lombok常用注解

给个三连吧 谢谢谢谢谢谢了
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Lombok的Builder注解是一种简化Java Bean对象构建的工具,它可以自动生成Builder模式的代码,使得对象的构建更加简单、方便。其原理是通过在编译时期使用注解处理器,自动生成Builder模式的代码,从而避免了手动编写Builder模式的繁琐过程。在使用Builder注解时,只需要在类上添加@Builder注解即可,Lombok会自动生成Builder模式所需的代码,包括Builder类、链式调用方法等。这样就可以通过链式调用的方式,一步步构建对象,而不需要手动编写构造方法。 ### 回答2: Lombok是一个Java类库,为了简化Java开发过程中的一些常规任务,如getter和setter、equals和hashCode方法、构造函数等,Lombok提供了一系列注解,其中之一就是Builder注解。Builder注解可以简化创建Java对象的代码,以统一的方式创建对象并且只需转换很少的构造器参数,从而使得代码更加美观、可读性、可维护性和可重用性更高。 使用Builder注解可以实现链式调用 - 通过传递原始构造方法参数的缺省值或者使用带参数的方法来构造Java对象。由于代码结构是典型的JavaBean样式,因此对JavaBean的任何类型和情况都是适用的。Builder注解的实现原理是通过在编译时根据注解提供的信息来生成Java代码,这使得Builder注解可以轻松地创建和配置Java对象,而无需编写冗长重复的代码。 在使用Lombok的Builder注解时,需要自定义一个Builder类来指定构造函数的参数和方法,然后使用注解来指定Builder类和构造函数的名称以及是否使用可选字段。Lombok的Builder注解可以通过定义静态Builder内部类来创建Builder实例化对象,并在实例化时链式调用setter方法,以便为Java对象设置属性。生成的Builder类中包含setter方法和一个build方法,并且可以使用链式调用来设置属性、构建对象。此外,Builder类还可以支持继承和泛型。 在Lombok的Builder模式中,可以使用注解来传递参数,并使用JavaBean样式通过setter和构造方法进行参数设置。Builder注解还可以用于创建其它Lombok风格的注解,例如: @NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor等。Lombok的Builder注解注重简化Java代码,并通过自动生成Builder类来提高开发效率和提供更好的可读性。同时,Builder模式还可以在一定程度上提高代码的健壮性和可靠性,避免了因构造函数中参数过多导致的参数序列易混淆等问题。 ### 回答3: Lombok是一种Java库,可以通过在JavaBean属性上添加注解来自动生成getter、setter、toString等方法,减少了手写代码的工作量,提高了开发效率。其中,@Builder注解是Lombok中一个比较常用的注解。它可以自动生成一个builder类,在创建对象时可以使用链式调用,简化了对象创建与初始化的过程。 @Builder注解的原理是通过在编译时期生成一个新的Builder类,这个类包含了当前类中所有@Builder注解标记的属性。在使用@Builder注解后,编译器会在编译时期根据注解信息自动生成这个Builder类。 生成的Builder类含有以下特性: 1. 一个默认的构造方法和一个包含所有注解属性的构造方法。 2. 以每个注解属性为参数的setter方法。 3. 一个build()方法,用于创建并返回注解的类。 使用@Builder注解后,只需在注解标记的类中提供必要的属性值即可使用该类的builder()方法创建这个类的一个新实例。而且,在使用builder模式时,可以通过链式调用设置对象的属性值,使代码更加清晰易懂。 总结来说,使用@Builder注解可以帮助开发者快速地生成对象的构建器,省去了很多冗余的代码,并且大大提高了代码的可读性和开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顶子哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值