Lombok使用详解

大城市里の小女人 提交于 2019-11-29 14:17:59

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的连接关闭。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!