IDEA必装插件:Lombok、GenerateAllSetter

Lombok通过注解消除实体类冗长代码

GenerateAllSetter快速生成实体的set方法

Lombok

以前的Java项目中,充斥着太多不友好的代码: POJO的getter/setter/toString/构造方法;
打印日志; I/O流的关闭操作等等,这些代码既没有技术含量,又影响着代码的美观,Lombok应运而生。
LomBok可以通过注解,帮助开发人员消除JAVA中尤其是POJO类中的冗长代码。
 

未使用Lombok插件前

  使用Lombok插件后

我们只需加一个注解,LomBok即可自动帮我们生成get和set方法

使用Lombok,如果IDEA版本在2020.3以上,不需要安装Lombok插件。如果IDEA版本在2020.3以下,需要安装Lombok插件

打开设置,找到Plugins,直接搜索安装就行

 下载lombok.jar  给项目添加依赖

Download (projectlombok.org)icon-default.png?t=N7T8https://projectlombok.org/download下载lombok.jar

打开项目结构,把刚刚下的jar包添加依赖到项目中 

 设置 Enable annotation processing 打上对勾,启用注释处理

 接下来编写实体类,会自动使用lombok

在有属性的上边写上注解,lombok会自动为类中的属性提供setter/getter等方法。

在IDEA中,按住Ctrl+7 可以查看Lombok生成的代码。

@Setter、@Getter


作用:为类中的属性提供setter/getter方法。
位置:类上方或属性上方,在属性(即成员变量)上方则为属性(即成员变量)生成setter/getter方法,在类上方表示给该类下的所有属性生成setter/getter方法。
属性:设置setter和getter访问权限。


● static修饰的变量不生成getter和setter方法
● final修饰的变量只生成getter方法

@toString

作用:生成toString方法,默认情况下它会按顺序打印类名称以及每个字段。
位置:类上方
属性:
exclude:取消某一个或多个变量在toString方法中的显示

 如果只是在类上方写一个@ToString,那么toString方法是输出所有的成员变量,另外如果用exclude属性的话,要想不输出多个成员变量的话,就像列表那样写

@ToString(exclude = {"password","username"})

@EqualsAndHashCod

在Java中,调用equals()可以判断两个对象是否相等。如果类不重写该方法,则判断两个引用是否指向同一个对象。而实际开发过程中,如果两个对象的属性值(成员的变量的值)都相等,那么就认为这两个对象相等。

如何重写equals():

  1. 判断两个弓|用是否指向同一对象
  2. 判断引用是否为Null
  3. 判断两个对象的实际类型是否相等,此时需要调用canEqual()
  4. 判断两个对象的属性是否相等

而在Set中判断对象是否重复,在调用equals()之前,需要先调用hashCode()计算hash值。
所以判断对象相等需要重写equals()、canEqual()、 hashCode()三个方法。
 

@EqualsAndHashCode
作用:生成equals和hashCode、 canEqual方法。 用于比较两个类对象是否相同。
位置:类上方
属性:
exclude:比较时排除一些属性
of:比较时只使用一些属性

注意:
● 对比时只使用非静态属性
● 默认仅使用该类定义的属性不比较父类定义的属性 

@NonNull


作用:用于方法参数前,表示调用该方法时参数不能为null;用于属性上方,表示为该属性
赋值时(注意用于属性上方时是赋值时不能为null,所以初值可以为null)值不能为null。
位置:方法参数前或属性上方。

构造方法相关注解

(1)@NoArgsConstructor
作用:生成无参构造方法
位置:类上方

(2)@RequiredArgsConstructor
作用:生成包含final和@NonNull修饰的属性的构造方法

final修饰的属性在构造对象的必须赋值,而@NonNull修饰的属性赋值不能为null
位置:类上方

@NoArgsConstructor和@RequiredArgsConstructor无法同时使用

(3)@AllArgsConstructor
作用:生成全参的构造方法
位置:类上方

@Data

作用:相当于同时添加@Setter. @Getter. @ToString、 @EqualsAndHashCode.
@RequiredArgsConstructor五个注解
位置:类上方

@Builder

作用:提供链式风格创建对象
位置:类上方

@Log

作用:在类中生成日志对象,在方法中可以直接使用
位置:类上方

 

注:针对不同的日志实现产品,有不同的日志注解,使用@Log表示使用Java自带的日志功能,除了@Log,还可以使用@Log4j、@Log4j2、 @SIf4j 等注解,来使用不同的日志产品。

@Cleanup

作用:自动关闭资源,如I0流对象。
位置:代码前方

@SneakyThrows

作用:对方法中异常进行捕捉并抛出
位置:方法上方

GenerateAllSetter

在平时开发的过程中,难免有一些实体bean相互转换的过程,如果实体类属性字段少的话还好,我们可以手动敲一遍,比如user.setName(u.getName()),但是当实体bean的字段达到10个以上时,这样手动敲难免会降低开发效率,这时候就得GenerateAllSetter出场了,GenerateAllSetter可以快速生成实体的set方法,大大减少开发的时间。

1、GenerateAllSetter插件安装

打开idea的设置窗口,找到Plugins,搜索generateallsetter,如图所示,我这里已经安装过了,没有安装的点击install按钮安装即可,安装完成之后会提示重启idea

2、GenerateAllSetter使用

安装并重启idea之后即可使用快捷键来快速生成代码,快捷键为alt+enter(回车键),也可以到idea里面去手动更改快捷键,可以看到已经自动生成了一系列的set方法,并且两个实体bean相同的属性会自动设置上

 直接点击就可以生成,省去我们了不少时间

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bridge Fish

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值