c语言代码大全及注解_Lombok 让Java代码飘起来

前言

先为你写下一段常见代码:

public class Person {
private String name;
private int age;
private String sex;
private String birthday;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public String getBirthday() {
return birthday;
}

public void setBirthday(String birthday) {
this.birthday = birthday;
}
}

这个就是我们最常见的代码,每个private修饰的成员变量都有一个setter和getter方法,今天要讲的Lombok就是可以自动帮你生成setter和getter的神器!代码就可以变成下面酱紫!

@Setter
@Getter
public class Person {
private String name;
private int age;
private String sex;
private String birthday;
}

就是这么清爽,就是这么简洁!那么可能就要开始杠了,为什么不能用public修饰,这样setter和getter就直接可以不用写了,还用什么神器?但是规范就是规范,为了变量的访问权限控制在自己手中,所以必须用private修饰。接下来就是安利Lombok使用和其他功能。

IDEA安装插件(eclipse自行百度)

在settings的Plugins,搜索Lombok并安装,重启IDEA即可生效。 14124e31ff47d60dc3c73423d88ed37f.png

引入依赖

如果你是用的maven项目,使用pom引入:

org.projectlomboklombok1.18.12

不用maven的就直接导入lombok-1.18.12.jar

使用大全

写段代码,包含常用且易懂的Lombok注解

@Setter
@Getter
@Slf4j
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class Person {
private String name;
private int age;
private String sex;
private String birthday;

public void sing(@NonNull String songName) {
// @Slf4j生成的logger
log.info(songName);
System.out.println(songName);
}

public void read(String bookPath) throws FileNotFoundException {
@Cleanup
FileInputStream in = new FileInputStream(bookPath);
}
}
@Setter和@Getter

这两个注解用在类上就是为所有的private成员变量添加getter和setter方法,如果放在成员变量上,就是为单个成员变量添加setter和getter方法

@Slf4j

我们平时使用slf4j打印日志的时候,需要获取logger, 

代码如下:

Logger logger = LoggerFactory.getLogger(Person.class);
logger.info("Hello World!")

使用@Slf4j注解之后,lombok帮你创建了一个名为log的logger,可直接使用。

@ToString

这个不推荐使用,虽然可以帮你生成toString方法,但是往往不符合我们的要求。他输出的结果是这样的。

Person(name=null, age=0, sex=null, birthday=null)
@AllArgsConstructor

帮你生成一个包含所有字段的构造器

@NoArgsConstructor

帮你生成一个无参类构造器,即new Person(){}

@NotNull

顾名思义,就是他修饰的变量和参数不能为null。测试一下

public static void main(String[] args) {
new Person().sing(null);
}
// 报错:Exception in thread "main" java.lang.NullPointerException: songName is marked non-null but is null
@Cleanup

我们在读取文件的时候创建流,在使用完后总会调用close()来关闭这个流。在获取数据库的connection的时候,用完也会调用close()来关闭连接。@Cleanup修饰在创建流和获取Connection的时候,在使用完成后会自动帮你关闭,你就不用调用close()自行关闭

@Data

这个没写在样例代码中,是因为这个是一个作用在类上,并且是@Setter、@Getter、@Slf4j的集合体。但是不推荐使用。包含的注解如下图: 1af4c5d29bb4ba057bfed3370bd4d312.png

结语

Lombok简化了代码,但是也会在代码阅读上带来了一些障碍,利弊之间,自行权衡。任何事都有两面,有的人喜欢它,也有厌恶它。从我的角度来说,至少它让我的代码变得更简洁。据说Java14到时候也会提供Lombok的这些功能,拭目以待吧!

f13576ebe8a3622e2dceda5b0ad80c04.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值