在JAVA开发中,因工作需要,你可能会学习或被迫去学习Lombok这个工具,这玩意用起来可以说是贼爽,很方便,可玄武老师实际上并不推荐大家使用,至于Lombok是什么?怎么入门?为什么不推荐使用?下面,玄武老师会慢慢跟你讲解 。
一、Lombok是什么?
1、官方网站地址:https://projectlombok.org/
2、官网对Lombok的描述如下:
Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.简单理解后说下意思:
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
Lombok项目其实就是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能 。以后你只需要一些简单的注解,就可以再也不用在类中反复去写get、equals等方法 。3、优点说明:
Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率 。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误 。
Lombok能通过注解的方式,在编译时自动为属性生成构造函数、getter/setter、equals、hashcode、toString等方法 。奇妙之处在于源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法 。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁明了 。
二、Lombok安装与使用
1、安装Lombok插件
Lombok插件支持Eclipse、IntelliJ IDEA、MyEclispe等IDE,在这里我们使用IntelliJ IDEA来演示安装:
1)打开File > Settings > Plugins >Marketplace,搜索Lombok,如图,点击install,弹窗Accept,然后安装好后Restart IDEA 。
文章插图
2)设置Enable annotation processing
打开File > Settings > Build, Execution, Deployment > Compiler > Annotation Processors,勾选Enable annotation processing,然后Apply和OK 。
文章插图
2、新建Java项目,引入jar包
1、常用jar包引入方法有两种,如下:
方法1:普通项目可以直接官网下载jar包,和使用普通jar包一样,导入项目即可 。jar下载地址:https://projectlombok.org/download
方法2:Maven项目可以在pom.xml中配置依赖坐标即可,依赖坐标如下:
<dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version><scope>provided</scope></dependency></dependencies>
注意:1、<scope>provided</scope>表示该包只在编译和测试的时候用,项目真正打成包时不会将Lombok包打进去 。
2、Lombok还支持其他构建方法,比如Ant、Gradle、Kobalt,有需要的可以参考官网的Install菜单下的Build Tools,其他使用方法也可以参考Install菜单
2、使用说明可以参考官方资料,也可以看我这里的常用注解代码演示(重点关注:@NonNull,@Getter, @Setter,@AllArgsConstructor,@NoArgsConstructor, @ToString和@Data)
1)@NonNull该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针 。
示例代码:
//成员方法参数加上@NonNull注解,构造方法也一样,在此不做演示public String getName(@NonNull Person p){return p.getName();}
实际效果相当于:public String getName(Person p){if(p==null){throw new NullPointerException("person");}return p.getName();}
2)@Getter和@Setter:在JavaBean或类JavaBean中使用,使用此注解相当于为成员变量生成对应的get和set方法,方法默认修饰符为public,同时还可以使用AccessLevel为生成的方法指定访问修饰符 。这两个注解还可以直接用在类上,可以为此类里的所有非静态成员变量生成对应的get和set方法 。示例代码:
public class Student{@Getter@Setterprivate String name;@Setter(AccessLevel.PROTECTED)private int age;@Getter(AccessLevel.PUBLIC)private String language;}
【Lombok入门使用教程及其优缺点详解】实际效果相当于:public class Student{private String name;private int age;private String language;public void setName(String name){this.name = name;}public String getName(){return name;}protected void setAge(int age){this.age = age;}public String getLanguage(){return language;}}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 一文搞懂 Traefik2.1 的使用
- 五子棋入门要诀 五子棋技术点拨
- 汽车变速箱该如何使用与保养
- 使用通脉养心丸有哪些注意事项?
- 使用sqoop在MySQL、hadoop、hive间同步数据
- sync-player使用websocket实现异地同步播放
- 为什么有些公司不让用Lombok?
- MYSQL使用初步流程介绍
- 使用charles嗅探https请求,你的API并不安全
- spring-boot-route 使用aop记录操作日志