Lombok安装和使用

这里是参考了两位大佬的文章,先贴出来,我只是做一个简单的整理,如果需要往深研究,可以看两位大佬的链接
https://blog.csdn.net/motui/article/details/79012846
https://www.cnblogs.com/heyonggang/p/8638374.html

介绍

lombok:其实可以简单理解成,用注解的方式,帮你自动生成一些getter/setter/tostring的代码,这样的话可以简化我们的开发,让代码更加简洁。

安装:

这里只提供一下eclipse的安装方法:

1、下载 http://projectlombok.org/download.html,将 jar 放到 eclipse 安装目录下,和 eclipse.ini 同一级目录。windows 系统是在/eclipse/下,mac系统是在/Eclipse.app/Contents/MacOS/下。

2、在 eclipse.ini 中添加两行配置:
​ -Xbootclasspath/a:lombok.jar
​ -javaagent:lombok.jar

3、重启eclipse

在pom.xml中加入:

<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.8</version>
        <scope>provided</scope>
</dependency>

使用:

demo入门:

首先,我们写一个实体类:

public class People {
	private String name;
	private int age;
}

正常的使用情况,我们就该利用快捷键生成getter/setter/toString/等一系列方法,这样的话,不仅麻烦,而且代码会显得很冗余。

这时候,我们就可以使用@Data注解,直接在类上加注解,然后导包

import lombok.Data;
@Data
public class People {
	private String name;
	private int age;
}

然后写一个测试类:

@Test
	public void test01() {
		People p = new People();
		p.setName("");
		p.getAge();
		p.toString();
	}

这里我们可以看到,我们在实体类,也就是people这个类中,并没有生成getter/setter方法,我们却依然可以调用,这就是lombok的功能所在了,接下来,我会总结一下各个注解的功能 ,以及使用位置。

总结:

@Data : 注解在类上,这个是最全的注解,会提供getter、setter、equals、canEqual、hashCode、toString,NoArgsConstructor,这里特别注意一下,如果属性是final的,那么不会生成setter方法。

@Getter和@Setter : 该注解使用在类或者属性上,生成对应的getter和setter方法

@NonNull : 该注解使用在属性或构造器上,会生成一个非空的声明,可用于校验参数,如果为空,则抛出一个空指针异常

public class People {
	//加注解
	@NonNull
	private String name;
	//等同于
	public void setName(String name) {
		if(name == null) {
			throw new NullPointerException("name");
		}else {
			this.name = name;
		}
	}
}

@Cleanup : 自动调用close()方法,封装到try/finally中,比如输入输出流,就可以把final close那一步省略,可以通过value来指定调用方法名称

@EqualsAndHashCode :重新生成equals和hashCode方法,可以通过exclude注解来排除一些属性

// 重新生成equals和hashCode,排除id和shape属性
@EqualsAndHashCode(exclude={"id", "shape"})

@ToString : 在类上使用,生成toString方法,有三个属性

​ includeFieldNames = true : 是否输出的时候带着属性的名称

​ exclude = “id” : 排除id字段

​ callSuper = true : 输出父类的属性

@NoArgsConstructor : 无参构造

@RequiredArgsConstructor : 部分参数构造器 ,类中所有带有@NonNull注解的或者带有final修饰的成员变量生成对应的构造方法

@AllArgsConstructor : 全参构造器,默认不提供无参构造

@Value :作用在类上,会生成所有参数的构造方法,get方法,equals,hashCode,toString方法,注意这里没有setter方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值