Lombok使用过程中的一些认识

如果你是第一次听到这个词的话,一定会想这是个什么玩意儿?那我告诉你,它可以极大的简化你的代码。我们一起来看一看它是如何简化我们代码的:

什么是Lombok

Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。这是Lombok的官网地址:Lombok官网 里面有更详细的介绍。

Lombok环境安装

要想使用Lombok,需要两步:

  1. 首先下载Lombok插件,在idea中setting—>plugins中搜索Lombok下载插件,如下图所示,由于我已经下载,所以显示的update:在这里插入图片描述
  2. 加入maven依赖:在pom.xml中加入:
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.8</version>
		</dependency>

以上,使用的Lombok的前提就已经准备好了。

Lombok初体验

话不多说,直接上代码:

/**
 * 这个类对应mongo中的一张订单表。
 */
@Data
@Document(collection = "member_order")
@Builder
public class MemberOrder implements BaseEntity<ObjectId> {

    /**最多记录数目,超出直接丢弃,汇总表依赖于OrderRecord对应表离线处理*/
    private static final int MAX_RECORD = 500;

    /**会员ID*/
    private ObjectId id;

    /**不考虑冗余,只要OrderRercord.id*/
    @Singular
    private List<String> orderIds;

    private Date createTime;                 
    private Date updateTime;

}

这个类使用到了Lombok中的@Data、@Builder和@Singular三个注解。

  • @Data注解在类,会生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
  • @Builder注解相当于在这个类开启builder 模式,而我们只需要加这么一个简单的注解。熟悉builder模式的应该知道没有这个注解我们需要添加多少代码,使用方法如下:
   MemberOrder build = MemberOrder.builder().createTime(new Date())
                           .orderIds(Collections.emptyList()).build();
  • @Singular注解会对 List、Set 等集合类构建 addOne、addAll、clear方法。

Lombok常用注解

@Setter:注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
@Getter:使用方法同上,区别在于生成的是getter方法。
@ToString:注解在类,添加toString方法。
@NonNull:注解在方法属性或者构造器上,帮忙判断参数是否为空,可以避免空指针。
@EqualsAndHashCode:注解在类,生成hashCode和equals方法。
@NoArgsConstructor:注解在类,生成无参的构造方法。
@RequiredArgsConstructor:注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
@AllArgsConstructor: 注解在类,生成包含类中所有字段的构造方法。
@Data:注解在类,相当于 @Getter + @Setter + @ToString + @EqualsAndHashCode+@RequiredArgsConstructor
@Slf4j:注解在类,生成log变量,严格意义来说是常量。
@Cleanup 告别释放资源,可以在创建各种流时加上这个注解。
@Builder注解在类,相当于在这个类开启builder 模式。
@Singular注解在集合类字段上,会构建 addOne、addAll、clear方法。

Lombok优缺点

  • 优点:通过注解的形式自动生成大量的方法,简化了我们的代码,提高了开发效率;
  • 缺点:不支持多种构造器的重载;代码可读性变差;

总结

在我看来,Lombok简单实用,能够提高我们的开发效率。然鹅缺点肯定是有的,随着使用的人越来越多,慢慢优化,才能使它更加强大。
本篇结束,如果有什么不明白或者发现问题的,欢迎评论或者私信我,谢谢各位!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值