欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

lombok插件安装(eclipse安装lombok插件教程)

程序员文章站 2023-11-17 14:06:59
简介lombok是一种java实用工具,可用来帮助开发人员消除java的代码冗余,尤其是对于简单的java对象(pojo)。它通过注释实现这一目的。通过在开发环境中实现 lombok,开发人员可以节省...

简介

lombok是一种java实用工具,可用来帮助开发人员消除java的代码冗余,尤其是对于简单的java对象(pojo)。它通过注释实现这一目的。通过在开发环境中实现 lombok,开发人员可以节省构建诸如 hashcode() 和 equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。

安装

  • 由于lombok采用注解的形式,在编译后自动生成相应的方法,所以需要下载插件来支持它。
  • 以idea为例:查找插件lombok plugin安装即可。

lombok插件安装(eclipse安装lombok插件教程)

lombok插件安装示例

引入依赖

使用前需要在pom.xml文件中引入lombok的依赖包:

<dependency>
    <groupid>org.projectlombok</groupid>
    <artifactid>lombok</artifactid>
    <scope>provided</scope>
</dependency>

注解大全

lombok插件安装(eclipse安装lombok插件教程)

注解目录

常用注解介绍

  • @getter和@setter:该注解可以使用在类上也可以使用在属性上,生成的getter遵循布尔属性的约定。在使用该注解时,会默认生成一个无参构造和对应的get、set方法。

示例代码如下:

@getter 
@setter 
public class user implements serializable { 
  private static final long serialversionuid = -7916580688752749714l;
  private long id; 
  private string username; 
  private boolean isdeleted; 
}
  • @tostring :该注解使用在类上,编译后tostring方法返回将会以字段的名称-值的形式输出。
  • @equalsandhashcode :该注解使用在类上,同时生成 equals 和 hashcode。
  • @allargsconstructor :该注解使用在类上,提供全参数的构造方法,默认不提供无参构造。
  • @noargsconstructor :该注解使用在类上,提供无参构造。
  • @data :使用该注解就相对于同时聚合了以下几个注解的功能(@tostring 、 @getter 、@setter、@equalsandhashcode 、 @noargsconstructor)。

需要注意的是:同时使用 @data 和 @allargsconstructor 后 ,默认的无参构造函数失效,如果需要它,要重新设置 @noargsconstructor。

  • @slf4j :在类上注解后,可直接调用log。
log.info("xxx");
log.error("xxx");
log.debug("xxx");
log.trace("xxx");
log.warn("xxx");
  • @builder:bulder 模式构建对象。
  • @cleanup:自动化关闭流。
@cleanup 
inputstream in = new fileinputstream(args[0]); 
@cleanup 
outputstream out = new fileoutputstream(args[1]);
  • @nonnull :增加不为空判断。
public nonnulldemo(@nonnull user user) { 
  this.username = user.getusername(); 
}
  • @sneakythrows :当我们需要抛出异常,在当前方法上调用,不用显示的在方法名后面写 throw。
@sneakythrows(exception.class)
  • @synchronized :方法中所有的代码都加入到一个代码块中,默认静态方法使用的是全局锁,普通方法使用的是对象锁,当然也可以指定锁的对象。
private final object lock = new object(); 
@synchronized("lock") 
public void doing() { 
  // todo:
}