Lombok介绍及使用
Lombok
1、简介
Lombok是一款Java开发插件,使得Java开发者可以通过其定义的一些注解来消除业务工程中冗长和繁琐的代码,尤其对于简单的Java模型对象(POJO)。在开发环境中使用Lombok插件后,Java开发人员可以节省出重复构建,诸如hashCode和equals这样的方法以及各种业务对象模型的accessor和ToString等方法的大量时间。对于这些方法,它能够在编期间自动帮我们生成这些方法,并没有如反射那样降低程序的性能。
2、使用步骤
1、先在idea中安装Lombok插件,安装完后需要重启idea
File —> Settings —> Plugins —> Browse repositories —> 搜索lombok
2、在pom.xml中导入依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
3、在实体类上添加相关注解
3、常用注解
- @Data:无参构造,get,set,tostring,hashcode,equals
- @AllArgsConstructor, @NoArgsConstructor:全参,无参
- @Getter and @Setter
- @EqualsAndHashCode
- @ToString
常用注解解释:
- @NonNull:用在方法参数前,会自动对该参数进行非空校验,为空抛出NPE(NullPointerException)
- @Cleanup:自动管理资源,用在局部变量之前,在当前变量范围内即将执行完毕退出前会清理资源,生成try-finally的代码关闭流
- @Getter/@Setter:用在属性上,不用自己手写setter和getter方法,还可指定访问范围
- @ToString:用在类上,可以自动覆写toString方法
- @EqualsAndHashCode:用在类上,自动生成equals方法和hashCode方法
- @NoArgsConstructor,@RequiredArgsConstructor and @AllArgsConstructor:用在类上,自动生成无参构造和使用所有参数的有参构造函数。
- @Data:用在类上,相当于@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解的总和,对POJO类十分有用
- @Value:用在类上,是@Data的不可变形式,相当于为属性添加final声明,只提供getter方法,而不提供setter方法
- @SneakyThrows:自动抛受检异常,而无需显式在方法上使用throws语句
- @Synchronized:用在方法上,将方法声明为同步的,并自动加锁
- @Getter(lazy=true):可以替代经典的Double Check Lock样板代码
4、Lombok的优缺点
优点:
- 能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率。
- 让代码变得简洁,不用过多的去关注相应的方法。
- 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等。
缺点:
- 不支持多种参数构造器的重载。
- 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战