Lombok是什么?
添加简单的注解,自动帮你生成getter、setter、toString、构造方法…
听起来是不是很神奇,下面我们来看一下如何使用
Lombok怎么用?
1.获得idea支持
File->settings->Plugins
选择Browse repo....
搜索Lombok
点击右侧的绿色按钮Install
,下载即可
2.导入maven坐标
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
</dependency>
3.引入注解
常用注解如下
- @Data
- @Setter
- @Getter
- @NonNull
- @ToString
不常用
- @Synchronized
- @EqualsAndHashCode
- @Cleanup
- @SneakyThrows
@Data
该注解相当于同时加上以下注解@Setter @Getter,@ToString,@EqualsAndHashCode,作用实体类中
举个栗子
/**
* 描述 :用户的实体类
*
* @author 郭德峻
* @email guodejun0808@163.com
*/
@Data
public class User{
private Integer id;
private String name;
private Integer sex;
private Integer age;
}
@Getter@Setter
作用于属性上,自动生成get,set方法.
举个栗子
/**
* 描述 :用户的实体类
*
* @author 郭德峻
* @email guodejun0808@163.com
*/
public class User{
@Getter@Setter
private String name;
}
@NonNull
该注解快速判断是否为空,如果为空,则抛出java.lang.NullPointerException
举个栗子
/**
* 描述 :用户的实体类
*
* @author 郭德峻
* @email guodejun0808@163.com
*/
public class User{
@Getter@Setter@NonNull
private String name;
}
@ToString
该方法大家应该非常熟悉,但需要注意的是:@ToString有多个属性可以进一步设置:
- callSuper 是否输出父类的toString方法,默认为false
- includeFieldNames 是否包含字段名称,默认为true
- exclude 排除生成tostring的字段
/**
* 描述 :用户的实体类
*
* @author 郭德峻
* @email guodejun0808@163.com
*/
@ToString(callSuper = true,exclude ={"name"})
public class User{
private Integer id;
private String name;
private Integer sex;
private Integer age;
}
@Synchronized
该注解自动添加到同步机制,有趣的是,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上
@Cleanup
注释可用于确保已分配的资源被释放,如IO的连接关闭。