Lombok是一个实用的Java类库,能够通过注解的形式自动生成构造器,getter/setter等,并且可以自动化生成日志变量,减少 Java 代码中的冗余和样板代码,简化Java开发,提高效率(setting,plugins中搜索Lombok插件(一般会自带))
安装方法:
方法一
直接向lib文件夹中添加lombok.jar包即可,(还是方法二比较通用)
方法二 如果使用的是Maven,则可在项目的pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
</dependency>
通过以上两种方法的确可以使用Lombok的相关API了,但无论是Intelij idea,还是Eclipse默认情况下是不能识别的,我们还要让idea识别起来。
Intellij Idea方法:
File->settings->Plugins->Browse repositories->Lombok
(一般来说,idea是会自带的)
Lombok的使用
Lombok提供注解方式来提高代码的简洁性,常用注解有:
- @Data(等于@Getter+@Setter+@ToString+@EqualsAndHashCode)
- @Setter @Getter
- @NonNull(自动生成非空检查)
- @NoArgsConstructor(无参构造)
- @AllArgsConstructor
- @ToString
- @EqualsAndHashCode
- @Builder(自动生成Builder模式的构造器方法)
- (其实也就上面这些比较常用)
- @Synchronized
- @Cleanup(自动释放资源)
- @SneakyThrows
最直接的用法
lombok的优缺点
优点:
能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一些开发效率
让代码变得简洁,不用过多的去关注相应的方法
缺点:
不支持多种参数构造器的重载
虽然省去了手动创建getter/setter方法的麻烦,但降低了源代码的可读性和完整性,降低了阅读源代码的舒适度
出现的版本问题
然后要说的就是lombok的版本问题了,这确实是比较烦的一点,运行项目时,经常会因为lombok的版本的问题导致无法运行。。。
建议使用这个,就无需手写版本了
java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'
一般出现这种报错,那大概率就是lombok版本出问题了。
<!-- <dependency>-->
<!-- <groupId>org.projectlombok</groupId>-->
<!-- <artifactId>lombok</artifactId>-->
<!-- <scope>provided</scope>-->
<!-- </dependency>-->
下面就是关于Lombok日志注解,这也是我觉得相当不错的一个功能
注解 | 注解作用 |
@Slf4j | 自动生成一个名为log的日志记录器 |
写上注解之后就可以在代码中使用log.info了,在排查代码执行情况的时候大大的好用。