当前位置:首页 > 数码 > 给正在经常使用-的好友们的衷心倡导-Lombok (给正在经常使用的词语)

给正在经常使用-的好友们的衷心倡导-Lombok (给正在经常使用的词语)

admin5个月前 (05-03)数码20

背景

随之21正式颁布。该版本是继JDK17之后最新的常年支持版本(LTS),将取得至少8年的支持!而SpringBoot3和Spring6的最低依赖就是JDK17了。

在JAVA8的时代,开发者必需都经常使用过Lombok库,这个库大大优化了咱们的开发效率,少写了很多代码,然而它也存在很多疑问,上方我来细细聊一下。

首先咱们看下传统意义上的定义一个类:

publicclassUser{privateStringuserName;privateStringeml;privateintuserId;publicUser(Stringusername,Stringemail,intuserId){this.userName=userName;this.email=email;this.userId=userId;}publicStringgetUserName(){returnusername;}publicvoidsetUserName(StringuserName){this.userName=userName;}publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){this.email=email;}publicintgetUserId(){returnuserId;}publicvoidsetUserId(intuserId){this.userId=userId;}@Overridepublicbooleanequals(Objecto){if(this==o)returntrue;if(o==null||getClass()!=o.getClass())returnfalse;Useruser=(User)o;if(userId!=user.userId)returnfalse;if(username!=null?!username.equals(user.userName):user.userName!=null)returnfalse;returnemail!=null?email.equals(user.email):user.email==null;}@OverridepublicinthashCode(){intresult=userName!=null?userName.hashCode():0;result=31*result+(email!=null?email.hashCode():0);result=31*result+userId;returnresult;}@OverridepublicStringtoString(){return"User{"+"userName='"+userName+'''+",+email+'''+",}';}}

而经常使用Lombok后的代码:

importlombok.Data;@DatapublicclassUser{privateStringuserName;privateStringemail;privateintuserId;}

@Data注解会智能生成一切的getter函数、字段的一切setter函数、toString函数、结构函数、hashCode和equals函数。

@Data注释联合了其余几个Lombok注释,例如@Getter、@Setter、@EqualsAndHashCode和@toString。假设须要,咱们还可以独自经常使用这些注释。

看下来是很美妙,不是吗?然而细心理考下,会发现这些疑问:


那么有什么好的替代打算吗?了解一下?

什么是?

你看到Record和Lombok之间的相似之处了吗?他们都在协助咱们成功雷同的指标。

那么如何经常使用呢?

要经常使用Record定义上述User类,咱们只有要这样做。

Lombok
publicrecordUserRecord(StringuserName,Stringemail,intuserId){}

就是这样。只有一行代码即可成功咱们用65行传统编码和5行Lombok所做的事件。另外,咱们不用依赖第三方库。

一旦咱们创立了上方的类,除了toString、hashCode和equals等类级别的方法之外,Java外部还定义了三个final变量及其getter方法。

让咱们具体探讨Record

一旦咱们有了用户Record类,咱们就可以开局经常使用它了。

//Initializetherecord.UserRecorduserRecord=newUserRecord("test","test@163.com",1234);//getthepropertiesSystem.out.println(userRecord.email());System.out.println(userRecord.toString());

请留意,getter方法中没有get关键字。咱们须要间接经常使用变量名作为方法名。例如,getEmail()咱们不是像传统上那样经常使用,而是在调用Record方法时经常使用email()。

一旦初始化,咱们就无法设置Record的属性值。一切变量都是最终的。这象征着记载是 无法变的

咱们可以在记载中定义实例和类函数。咱们可以定义静态变量。咱们不能 定义 实例变量。

//类(静态)变量publicstaticfinalStringinvalidEmailMessage="INVALIDEMAIL";//实例变量-不准许。会抛出失误。publicStringdefaultEmail="xxxxx@163.com";//类函数publicstaticvoidsayMyName(){System.out.println("zhangsan");}//实例函数publicStringemailDomain(){returnthis.email.split("@")[1];}
//经常使用对象userRecord.emailDomain();//经常使用Class调用静态方法。UserRecord.sayMyName();

Record类无法裁减。一切Record类都隐式裁减Record类。而且Java不准许多重承袭。因此咱们的Record类不能是任何其余类的子类。

自动状况下,记载也是最终记载。因此咱们不能将它们用作任何其余类的父类。

记载结构器

该记载申明了一个带有一切参数的自动结构函数。这种类型的结构函数称为 规范结构函数

publicUserRecord(Stringusername,Stringemail,intuserId){this.username=username;this.email=email;this.userId=userId;}

咱们可以在结构函数中编写自定义逻辑。

publicUserRecord(Stringusername,Stringemail,intuserId){this.username=username;this.email=email;this.userId=userId;if(userId<1){thrownewIllegalArgumentException("UserIdcannotbelessthan1");}}

有一个很棒的性能,咱们可以经过消弭不用要的细节来创立一个 紧凑的结构函数 。例如,上方具备自定义逻辑的规范结构函数可以以紧凑的方式重写为:

publicUserRecord{if(userId<1){thrownewIllegalArgumentException("UserIdcannotbelessthan1");}}

比拟Lombok和Record:

性能

不变性

没有

是的

可裁减性

是的

没有

样板代码

缩小

缩小

可读性

或许会更难浏览

更容易浏览

持重性

不太持重

更坚挺

第三方依赖

是的

没有

IDE兼容性

不容易

繁难

有性能差异吗?

不会。就性能而言,经常使用Java记载和Lombok注释没有清楚差异。两者生成的代码一旦编译,在性能特色方面与手写代码没有什么不同。生成的代码由Java编译器优化,因此简直没有性能开支。

论断:

本文标明咱们应该经常使用记载来编写更明晰、更具可读性的代码。记载可以协助咱们缩小样板代码,而无需任何第三方库。Lombok与IDE存在一些兼容性疑问。


香奈儿女士的资料

香奈儿CHANEL可以被称为“法国时装之母”,她在人们心中,不仅是个优雅的品牌,更是一种自信、独立现代的新女性标志。 嘉伯丽香奈儿,同事们惯称她为“女士”,好友们则昵称她为“可可”(Coco)。 毕加索称她是“欧洲最有灵气的女人”,萧伯纳给她的头衔则是“世界流行的掌门人”。 在公众眼中,香奈儿是一位专注于工作、意志坚强的女性。 她白手起家,凭借她非凡的创造力和永不妥协的精神成为了首屈一指的设计大师。 香奈儿彻底改变了妇女的着装观念,她倡导的“简单”概念,颠覆了当时的流行时尚,在20世纪时尚界掀起了变革。 时至今日,CHANEL的产品包括:成衣、配饰及包、鞋;化妆美容品及香水;高级订制服和高级珠宝及手表。 \如果要选出二十世纪时尚王国中具有传奇色彩的人物,香奈儿女士一个不加考虑就能涌出脑海的名字。 这个身材娇小、长相算不得出众的女人,却凭借着自己独到的时尚眼光与突出的个性成为现代女性身体解放的革命先锋,而她创造的CHANEL王国更成为一个时尚传奇,直到今天,CHANEL作为一个名字、一个品牌,仍是潮流先驱的代言人。 毫不夸张地说,CHANEL在商业界的成功是史无前例的,它不仅成为一个时尚品牌的名称,更成为具时代精神与生命力的代表。 CHANEL也在彩妆和香水领域创造了令人惊讶的佳绩,1921年,香奈儿女士与著名的格拉斯香水大师恩尼斯·鲍(Ernest Beaux)合作,推出了世界上最受欢迎的设计师香水:CHANEL N°5香水,直至今日,CHANEL N°5仍是全世界销售第一的香水。 玛丽莲·梦露“我只穿N°5入睡”的名句,也成为CHANEL N°5不朽的传奇故事。 CHANEL领域中的创造与创新者们不断延续着品牌的神话,四位创意大师凭借着各自的灵感让CHANEL稳局当代服装界的首席位置。 在众多香水制造商中,仍然保留自己调香师的公司屈指可数,而香奈儿就是其中之一。 的创始人Gabrielle Channel出生于法国。 是一位曾经平常的巴黎少女。 父亲是流动商贩,母亲在她十二岁的时候因肺结核去世,留下她与姐姐在修道院的孤儿院相依为命。 孤儿院的少女有着脱离平庸的强烈欲望,也期盼有奇迹出现改变她的生活,终于,Gabrielle认识了一位家产雄厚、外表出众的年轻伯爵军官,借此,见识到钱财权势及舒适奢华的生活。 聪明的她很快明白,在眩目的花花世界里,唯有建立与众不同的形象,才能使自己具有竞争力。 年轻的她穿着自制的及膝的黑色套裙,头戴线条简洁的钟形帽,在一片盛装打扮的贵妇之中,另人眼睛一亮。 这些特立独行的行径使这位离径叛道的山茶花夫人,成为当时女性主义启蒙的重要起源。 她倡导的风格把女性从繁复的装束下解放出来,有了今天的挥洒自如。 香奈儿于1912年在法国开了一间小小的服装沙龙,尔后,凭借其独特的艺术眼光,逐渐将其发展成为迄今不衰的香奈儿王国。 香奈儿最著名的服装设计是黑色小礼服。 香奈儿认为她的划时代的服装应有前卫的香水搭配,1921年,著名的香奈儿五号产生,香奈儿小姐一举成功地涉足香水世界。

朋友给我推荐了安吉兰德奶粉,大神们,快出来回答啊

安吉兰德,Angi’Land——欧洲有机营养倡导者,秉承“让生命拥有自然成长的力量”。 所有产品均为100%欧洲原装进口,其中有机婴幼儿配方奶粉是以法国比利牛斯大区与阿尔卑斯山区天然有机牧场的有机奶源为原材料,采用了适合宝宝生长发育的科学与安全的配方。 安吉兰德有机婴幼儿配方奶粉获得欧盟与中国双重有机认证,从原料生产到产品出厂经过六重环节跟踪检测,全程可追溯,确保独立产品档案,明确来源与去向。 把健康有机的食品带给全世界的宝宝是安吉兰德一直在坚持做的事情。 目前旗下的产品主要是安吉兰德有机婴幼儿奶粉。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Lombok