全网@你不得不会的Lombok全面详细讲解,全网最详细的教程

读者范围:如果你使用过Lombok你可能只使用了部分功能,那么这里列举了所有功能,你继续阅读能完善这方面的知识;如果你还没用用过,甚至不知道这是什么,那么对不起,你已经被技术淘汰了,这里有一份详尽的教程让你一次性恶补过来;简介Lombok是一个可以通过注解来帮助我们简化消除一些必须有但显得很臃肿的Java代码的一种工具,通过使用对应的注解,可以在编译源码的时候动态添加源码。例如在实体中经常见到一堆Getter和Setter方法,这些方法是必要的不可缺少的,但是这些代码感觉却像是“垃圾”,看起来重复而臃肿,看起来也不美观,也不简洁清爽,可以使用lombok,在类上直接使用@Getter @Setter 这两个注解,那么代码在编译的时候会自动帮你生成这个类下的所有字段对应的Getter和Setter方法,实体中只有一些属性,看起来实体类变得简洁很多,虽然IDE可以很快的生成出来,但是生成之后的实体还是那么的臃肿,而且如果修改了字段的名称或者字段的类型还要重新生成,比较麻烦,使用Lombok就是消除一些含金量不高却必须要有的代码,使程序员看起来代码更加简洁、清爽。Automatic Resource Management, automatic generation of getters, setters, equals, hashCode and toString, and more!lombok的官方地址:https://projectlombok.org/lombok的Github地址:https://github.com/rzwitserloot/lombokLombok plugin 插件Intellij idea 使用Lombok需要安装插件:Lombok plugin: Preferences —> Plugins —> 搜索 Lombok plugin — > Install同时设置 Preferences -> Compiler -> Annotation Processors -> Enable annotation processing勾选。 全网@你不得不会的Lombok全面详细讲解,全网最详细的教程
文章图片
使用示例首先引入lombok依赖 全网@你不得不会的Lombok全面详细讲解,全网最详细的教程
文章图片
1. @Getter/@Setter为字段生成Getter和Setter方法,可以注解到字段或者类上(注解在类上会为类中的所有字段生成Getter和Setter方法),默认是public类型的,如果需要的话可以修改方法的访问级别。 全网@你不得不会的Lombok全面详细讲解,全网最详细的教程
文章图片
结果解释:id字段生成了Getter&Setter,访问修饰符是publicphone只生成了Getter方法,因为只使用了@Getter而没有使用@Setter, 并且访问修饰符是protectedpassword 上并没有注解,所以什么都不生成注意:Lombok中的注解一般都会包含一个无参构造函数注解@NoArgsConstructor(用于生成无参构造函数的) ,所以还会额外生成一个无参构造函数@Getter @Setter 注解在类上,表示为类中的所有字段生成Getter&Setter方法。 全网@你不得不会的Lombok全面详细讲解,全网最详细的教程
文章图片
2. @NonNull为字段赋值时(即调用字段的setter方法时),如果传的参数为null,则会抛出空异常NullPointerException,生成setter方法时会对参数是否为空检查 全网@你不得不会的Lombok全面详细讲解,全网最详细的教程
文章图片
3. @NoArgsConstructor生成一个无参构造方法。当类中有final字段没有被初始化时,编译器会报错,此时可用@NoArgsConstructor(force = true),然后就会为没有初始化的final字段设置默认值 0 / false / null, 这样编译器就不会报错。对于具有约束的字段(例如@NonNull字段),不会生成检查或分配,因此请注意,正确初始化这些字段之前,这些约束无效。 全网@你不得不会的Lombok全面详细讲解,全网最详细的教程
文章图片
4. @RequiredArgsConstructor生成构造方法(可能带参数也可能不带参数),如果带参数,这参数只能是以final修饰的未经初始化的字段,或者是以@NonNull注解的未经初始化的字段。@RequiredArgsConstructor(staticName = “of”)会生成一个of()的静态方法,并把构造方法设置为私有的


推荐阅读