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

陕西工程建设标准化信息网9个广州seo推广神技

陕西工程建设标准化信息网,9个广州seo推广神技,中国十大软件开发公司排名,最新域名查询网很多人看到标题可能会想到 lombok 的 Builder,lombok 在国内用的挺多的,开源的组件中 mybatis-plus 中用到了这个,使用这个有一个问题就是通过对应 get 和 set 方法找不到对应的赋值方法,因为 lombok 使用了 apt 在编译期生成了相…

很多人看到标题可能会想到 lombok 的 @Builder,lombok 在国内用的挺多的,开源的组件中 mybatis-plus 中用到了这个,使用这个有一个问题就是通过对应 get 和 set 方法找不到对应的赋值方法,因为 lombok 使用了 apt 在编译期生成了相关的字节码。这样对于喜欢看源码的人来说很不好,起码我在看国外开源的代码时没有看到过使用 lombok 的。

在工作期间就想到了一点,idea 中有没有那种相关生成 Builder 代码的插件?

经过多次尝试,发现了一个名为 innerbuilder 的插件可以做到和 lombok 生成的代码一致。

InnerBuilder - IntelliJ IDEs Plugin | Marketplace

如下代码为例

public class SceneProductRelaInfo {/*** 场景信息*/private SysnSceneProductInfo sysnSceneProductInfo;/*** 场景关联商品信息*/private List<WarePortal> productInfoList;public SysnSceneProductInfo getSysnSceneProductInfo() {return sysnSceneProductInfo;}public void setSysnSceneProductInfo(SysnSceneProductInfo sysnSceneProductInfo) {this.sysnSceneProductInfo = sysnSceneProductInfo;}public List<WarePortal> getProductInfoList() {return productInfoList;}public void setProductInfoList(List<WarePortal> productInfoList) {this.productInfoList = productInfoList;}}

在 idea->Settings->Plugins 中搜索 innerbuilder 进行安装

代码右键 Generate

按照如下处理即可

 

public class SceneProductRelaInfo {/*** 场景信息*/private SysnSceneProductInfo sysnSceneProductInfo;/*** 场景关联商品信息*/private List<WarePortal> productInfoList;private SceneProductRelaInfo(Builder builder) {setSysnSceneProductInfo(builder.sysnSceneProductInfo);setProductInfoList(builder.productInfoList);}public SysnSceneProductInfo getSysnSceneProductInfo() {return sysnSceneProductInfo;}public void setSysnSceneProductInfo(SysnSceneProductInfo sysnSceneProductInfo) {this.sysnSceneProductInfo = sysnSceneProductInfo;}public List<WarePortal> getProductInfoList() {return productInfoList;}public void setProductInfoList(List<WarePortal> productInfoList) {this.productInfoList = productInfoList;}public static final class Builder {private SysnSceneProductInfo sysnSceneProductInfo;private List<WarePortal> productInfoList;private Builder() {}public static Builder builder() {return new Builder();}public Builder sysnSceneProductInfo(SysnSceneProductInfo val) {sysnSceneProductInfo = val;return this;}public Builder productInfoList(List<WarePortal> val) {productInfoList = val;return this;}public SceneProductRelaInfo build() {return new SceneProductRelaInfo(this);}}
}

最终生成出来的代码和 lombok 的一致。

SceneProductRelaInfo build = SceneProductRelaInfo.builder().productInfoList(null).sysnSceneProductInfo(null).build();

上面的代码逻辑在使用 @Builder 注解和生成的代码中切换,没有异常。

lombok 原理

https://blog.csdn.net/ly279481968/article/details/108000799

https://www.jianshu.com/p/302c56f9574d

https://zhuanlan.zhihu.com/p/485004057

https://zhuanlan.zhihu.com/p/574760548

http://www.zhongyajixie.com/news/23881.html

相关文章:

  • 做网站开发找哪家公司肇庆网站搜索排名
  • 北京网站开发要多少钱谷歌浏览器下载安装2021最新版
  • 建筑模板网北京百度推广优化排名
  • 合肥网站建设认准 晨飞网络关键词排名seo优化
  • 企业网站上的工资表怎么做推广互联网推广
  • 怎么弄个人网站企业文化ppt
  • 网站开发的几个步骤网络营销策划的基本原则是什么
  • 玩具电子商务网站建设论文市场推广计划
  • 阿里云网站申请用途北京seo诊断
  • 怎么做网站dns加速建站系统源码
  • 网站是什么程序做的如何做外贸网站的推广
  • 政府门户网站改版方案开发一个app需要多少钱
  • 网站建设 图片上传网络营销课程个人感悟
  • 武汉网站建设排行网络推广都有哪些方式
  • 网站建站大约多少钱公司做网络推广哪个网站好
  • 编写app讯展网站优化推广
  • 福州疫情最新消息哈尔滨seo关键词排名
  • 没学过计算机开始学做网站广州百度推广客服电话
  • 大连网站建设找简维科技如何优化seo关键词
  • 做盗版电影网站犯法吗舆情监测分析系统
  • 做网站必须要电脑吗微信引流推广精准粉
  • 淮安建设局网站域名地址查询
  • 购物网站开发的描述外链是什么意思
  • 做阿里巴巴企业网站seo网站监测
  • 河南建设安全协会网站百度推广网站一年多少钱
  • 深圳官网网站建设怎么做个网站
  • 手机建网站步骤软件武汉搜索排名提升
  • 启航网站管理系统口碑营销成功案例简短
  • 网站建设明细价单百度seo优化软件
  • 莆田网站制作app推广拉新一手渠道