Lombok使用1:简单介绍

原创
2020/12/23 00:30
阅读数 174

Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。

官网地址:https://projectlombok.org/

 

一、安装插件

这里以Intellij IDE(Mac版)为例,依次打开 Preferences -> Plugins -> 搜索Lombok插件安装。

我这里已经安装了,所以是update。

 

 

二、添加依赖

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

 

三、val和val的使用

val、val关键字在定义一个变量时候不需要指定它的类型,它的类型由初始化的表达式推断。

(1)var 所声明的变量是非 final 的。

var example = new ArrayList<String>();
example.add("Hello, World!");

编译后的代码:

ArrayList<String> example = new ArrayList<String>();
example.add("Hello, World!");

 

(2)val 所声明的变量是 final 的。

val foo = example.get(0);

编译后的代码:

final String foo = example.get(0);

 

四、Lombok内容概览

  • var 所声明的变量是非 final 的。
  • val 所声明的变量是 final 的。
  • @Getter 注解在属性(类)上,为属性(所有非静态成员变量)提供 get() 方法
  • @Setter 注解在属性(类)上,为属性(所有非静态成员变量)提供 set() 方法
  • @Accessors 注注解在属性(类)上,配置getter和setter方法的生成结果,分别有三个属性:fluent、chain、prefix
  • @ToString 该注解的作用是为类自动生成 toString() 方法
  • @EqualsAndHashCode 为对象字段自动生成 hashCode() 和 equals() 实现
  • @AllArgsConstructor、@RequiredArgsConstructor、@NoArgsConstructor 顾名思义,为类自动生成对应参数的构造器
  • @Data 注解在类上,自动为所有字段添加 @ToString、@EqualsAndHashCode、@Getter。为非 final 字段添加 @Setter 和 @RequiredArgsConstructor。本质上相当于几个注解的综合效果
  • @Value 注解和 @Data 类似,区别在于它会把所有成员变量默认定义为 private final 修饰,并且不会生成 set() 方法
  • @Log、@Log4j、@Log4j2、@Slf4j、@XSlf4j、@CommonsLog、@JBossLog 注解在类上,自动为类添加对应的日志支持
  • @NonNull 注解在方法参数上,用于自动生成空值参数检查,自动帮助我们避免空指针
  • @Cleanup 自动帮我们调用 close() 方法,作用在局部变量上,在作用域结束时会自动调用 close() 方法释放资源,可以关闭流
  • @Builder 注解在类上,被注解的类加个构造者模式
  • @Synchronized 注解在类上,加个同步锁
  • @SneakyThrows 等同于 try/catch 捕获异常
  • @UtilityClass 注解在类上,所有成员都会自动标记为static。甚至字段和内部类。

 

更多阅读

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部