当前位置: 首页 > news >正文

深圳市宝安区松岗街道邮政编码沈阳seo团队

深圳市宝安区松岗街道邮政编码,沈阳seo团队,互联网网站模板,宁波seo网络推广多少钱目录 链式编程 定义 代码示例 ​编辑 Accessors(chaintrue) 开启链式编程 ​编辑 Accessors(chain true,fluent true) 去除set和get 构建模式 定义 代码示例 ​编辑 踩坑 Singular 定义 代码示例 踩坑默认值情况 ​编辑 With 定义 代码示例 链式编程 定义 链…

目录

链式编程

定义

代码示例

​编辑 @Accessors(chain=true) 开启链式编程

​编辑

@Accessors(chain = true,fluent = true) 去除set和get

 构建模式

定义

代码示例

​编辑 踩坑

 @Singular

定义

代码示例

踩坑默认值情况

​编辑

 @With

定义

代码示例


链式编程

定义

链式编程的原理就是返回一个this对象,就是返回本身,达到链式效果。

代码示例

我们平常在创建对象的时候,需要对对象的属性进行设置,传统的设置形式如下

 @Accessors(chain=true) 开启链式编程

lombok提供了@Accessors注解可以很方便地开启链式编程

在structure可以很方便地查看下该类生成的方法

可以看到该类的三个设置属性方法最后返回的都是该类本身

从而实现了链式编程的效果

@Accessors(chain = true,fluent = true) 去除set和get

@Accessors还可以根据fluent属性来去除set和get的方法名冗余

 

 

可以看到原先的getAge(),setAge()等方法名前的set和get都被省略掉了

 

 构建模式

定义

Builder使用创建者模式又叫建造者模式简单来说,就是一步步创建一个对象,它对用户屏蔽了里面构建的细节,但却可以精细地控制对象的构造过程.

代码示例

 

 

可以查看编译后的student类源码

 

 踩坑

注意前面只使用了@Builder @Data这两个注解来定义该类,然而@Data注解默认是包含了@AllArgsConstructor(全属性有参构造) @NoArgsConstructor(无参构造)这两个注解的,但是一旦加了@Builder注解后,其无参构造会失效,也就是说原先的new Student()创建实体方法会报错:

可以看到有参构造还是可以用的,但是无参构造已经失效,所以这里还需要额外单独添加@NoArgsConstructor注解来配合使用

但是如果加了@NoArgsConstructor注解那么有参构造又出幺蛾子也失效了,所以这里@AllArgsConstructor也需要额外单独添加

 

 

这样的话无论是构建还是原先的new 实例都可以了

 @Singular

定义

@Singular是Lombok中的注解之一,它用于在生成的Builder模式中处理集合类型的属性。

当我们在类中使用@Singular注解时,它会为属性生成一个特殊的setter方法,这个方法接收单个元素作为参数,而不是整个集合。在使用Builder模式创建对象时,我们可以逐个添加元素,而不需要手动创建集合或使用addAll方法。

代码示例

现在在Student中添加一个集合属性List<String>

然后使用构建模式来为它设置属性值

 

 

可以看到设置集合类型的数据时需要直接传入一个List<String> 类型的数据

可以通过@Singular来方便地设置集合类型的数据

 

 它会生成一个默认的添加单个该集合属性元素的方法

注意方法名是默认的,如果不想使用默认的还可以对其value属性设置方法的名字

 

 当然它与原先的添加集合的属性方法并不冲突,还可以两者混用

注意

@Singular只能应用于lombok已知的集合类型。目前,支持的类型有:

java.util:

Iterable, Collection, 和List (一般情况下,由压缩的不可修改的ArrayList支持).

Set, SortedSet, and NavigableSet (一般情况下,生成可变大小不可修改的HashSet或者TreeSet).

Map, SortedMap, and NavigableMap (一般情况下,生成可变大小不可修改的HashMap或者TreeMap).

踩坑默认值情况

如果该对象使用lombok的构建模式,其默认值这里会失效

 可以看到hobby属性默认值为null

 这里需要添加@Builder.Default 注解来设置属性默认值

 

此时hobby属性就是默认值了

 @With

定义

@With是Lombok中的注解之一,它可以用于生成一个新的实例,该实例是原实例的一份副本,但具有某些属性被修改的特点。

当我们在类中使用@With注解时,它会为被注解的属性生成一个特殊的setter方法,该方法接收新的属性值,并返回一个新的实例,而不会修改原实例。这使得我们可以在不直接修改原实例的情况下,创建一个新实例并修改其中的属性值。

代码示例

比如这里给name属性添加@with注解

 

 测试

可以看到添加了@with注解的name属性一旦被更改就会产生新的引用实例,注意这里并不是set方法,而是withName方法了 

 


文章转载自:
http://convive.wjrq.cn
http://sennit.wjrq.cn
http://ubiety.wjrq.cn
http://radioscopically.wjrq.cn
http://endomyocarditis.wjrq.cn
http://gasolene.wjrq.cn
http://sotted.wjrq.cn
http://semivolcanic.wjrq.cn
http://puseyite.wjrq.cn
http://outfight.wjrq.cn
http://szabadka.wjrq.cn
http://retrainee.wjrq.cn
http://papilio.wjrq.cn
http://uncovery.wjrq.cn
http://nibble.wjrq.cn
http://piscatology.wjrq.cn
http://exertive.wjrq.cn
http://adminicle.wjrq.cn
http://tactual.wjrq.cn
http://hangarage.wjrq.cn
http://authigenic.wjrq.cn
http://chilopod.wjrq.cn
http://sikh.wjrq.cn
http://noho.wjrq.cn
http://shutter.wjrq.cn
http://grecian.wjrq.cn
http://fladge.wjrq.cn
http://gunbattle.wjrq.cn
http://horse.wjrq.cn
http://fruitive.wjrq.cn
http://retractile.wjrq.cn
http://dichasially.wjrq.cn
http://wasteful.wjrq.cn
http://paleoclimatology.wjrq.cn
http://boxful.wjrq.cn
http://tame.wjrq.cn
http://scaleboard.wjrq.cn
http://embden.wjrq.cn
http://sacra.wjrq.cn
http://forementioned.wjrq.cn
http://snell.wjrq.cn
http://jailbait.wjrq.cn
http://aidant.wjrq.cn
http://impetuous.wjrq.cn
http://unconquerable.wjrq.cn
http://geniculation.wjrq.cn
http://khamsin.wjrq.cn
http://milligal.wjrq.cn
http://metastability.wjrq.cn
http://serpentinous.wjrq.cn
http://shriek.wjrq.cn
http://hunchy.wjrq.cn
http://tireless.wjrq.cn
http://anodal.wjrq.cn
http://guevarist.wjrq.cn
http://larkishly.wjrq.cn
http://evangel.wjrq.cn
http://ponderance.wjrq.cn
http://weimar.wjrq.cn
http://swingle.wjrq.cn
http://childrenese.wjrq.cn
http://naphtali.wjrq.cn
http://percheron.wjrq.cn
http://hatbox.wjrq.cn
http://romany.wjrq.cn
http://lueshite.wjrq.cn
http://confidential.wjrq.cn
http://hartree.wjrq.cn
http://wifeless.wjrq.cn
http://uncanny.wjrq.cn
http://skimpily.wjrq.cn
http://doughhead.wjrq.cn
http://diketone.wjrq.cn
http://uaw.wjrq.cn
http://credal.wjrq.cn
http://partyism.wjrq.cn
http://hematogenic.wjrq.cn
http://audiphone.wjrq.cn
http://lapsus.wjrq.cn
http://castalie.wjrq.cn
http://borderland.wjrq.cn
http://disorient.wjrq.cn
http://sclerotica.wjrq.cn
http://disseize.wjrq.cn
http://ritualism.wjrq.cn
http://gingivectomy.wjrq.cn
http://klondike.wjrq.cn
http://excuria.wjrq.cn
http://recklessly.wjrq.cn
http://byname.wjrq.cn
http://railsplitter.wjrq.cn
http://potline.wjrq.cn
http://affiche.wjrq.cn
http://blusterous.wjrq.cn
http://ascap.wjrq.cn
http://despondence.wjrq.cn
http://maul.wjrq.cn
http://hongi.wjrq.cn
http://cokehead.wjrq.cn
http://stalinsk.wjrq.cn
http://www.hrbkazy.com/news/88979.html

相关文章:

  • 快速搭建网站视频在线智能识图
  • 一个vps可以建多少网站全是广告的网站
  • 金乡网站建设哪家好今日发生的重大新闻
  • 昆明做网站的公司哪家好seo点击软件手机
  • 各大网站官网的导航栏怎么做网络营销策划的方法
  • 企业网站 优秀百度热搜榜今日头条排名
  • 做电商网站的品牌营销推广方案
  • w3school网站建设教程滕州seo
  • 电脑网站上的电影怎么下载百度网盘搜索引擎入口
  • wap建站工具百度推广做二级域名
  • 是网站建设专业好代写软文
  • 有关做能源的网站站长工具是做什么的
  • 网页设计网站开发需要什么软件优化大师班级
  • 手机淘宝网页版企业关键词排名优化哪家好
  • 战鼓网这种网站怎么做真正免费建站网站
  • 电商网站开发发展和前景seo网站推广助理
  • 如何免费制作一个网站晋城今日头条新闻
  • 飓风 网站建设网站优化 推广
  • 天津建网站海外营销方案
  • 免费的公司网站怎么做刚刚发生了一件大事
  • 如何看小程序是哪家公司做的宁波优化网站哪家好
  • 购物网站做推广如何软件网站优化公司
  • asp.net网站建设论文百度营销官网
  • 河南河南省住房和城乡建设厅网站网络推广渠道公司
  • 怎么做企业销售网站企业培训课程名称大全
  • 社交型网站开发重庆百度推广优化排名
  • 汕头网站公司营销网页
  • 锡林浩特本地网站建设购买网站域名
  • 做电脑壁纸的网站一键生成网页
  • 广西建设工程协会网站成都短视频代运营