java插件库Lombok使用

背景:我今天在看研发项目代码的时候,发现rd很多暴露接口会@Data@NoArgsConstructor等注解,后来查了一下是Lombok第三方库的功能,觉得蛮不错的,简单记录一下使用。

Lombok库主要通过注解的形式修饰类,变量和方法。省去写set/get变量值的方法、有参数/无惨构造器和输入变量的值(还有一些其他功能,我这里面就记录代码用到了)。

先看下项目中用到,如图,三个注解,@Data,@NoArgsConstrucor,@AllArgsConstructor这个三个。

Lombok很多注解,我觉得可以分成三类:修饰类,修饰变量和修饰方法。

修饰类:

@Getter(value = AccessLevel.PUBLIC)
@Setter(value=AccessLevel.PUBLIC)

这两个主要代替我们经常对变量进行值的写入和获取,除了修饰类,还可以修饰变量,那么该变量就可以直接有set、get方法。

 举个例子,如图:这样id就有了setid和getid两个方法。同时我们设置变量访问权限这里面设置public。

这里面有个java基础就是变量权限分成4中:

public->producted->default->private 权限依次递减。

@NoArgsConstructor:没有参数的构造方法
@AllArgsConstructor:全部参数的构造方法

 

构造方法:主要针对类,表现形式和类名必须一致,但是没有返回值 这种:public 类名()。主要作用就是为类实例化设置属性。

无参数构造方法:new的不需要传参。

全参数构造方法:new所有参数都要赋值,这个一般和@NOTNULL一起使用,表示该变量不能为空。

@Data :是多个注解的集合包含:@getter,@setter,@tostring,@canEqual,@equals,@hashCode。

ps:hashcode和equals 都是判断两个对象是否一致,区别在于:

hashcode:效率高但是并不可靠,即两个不同对象通过生成hash值也可能相同

equals:效率低但是准确。

所以一般选择想用hashcode判断,不同肯定不是一个对象,相同在用equals去判断。

https://www.jianshu.com/p/2543c71a8e45

https://blog.csdn.net/ThinkWon/article/details/101392808

https://blog.csdn.net/bailu666666/article/details/81153815

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值