首页 > 其他分享 >关于 @Builder 和 @SuperBuilder

关于 @Builder 和 @SuperBuilder

时间:2023-05-12 10:47:22浏览次数:28  
标签:name Builder Ming SuperBuilder 关于 父类 toBuilder 属性

了解@SuperBuilder
@SuperBuilder解决了什么样的问题
将例子中的Ming这个类的成员属性放到父类当中:

public class Person {
    private Integer age;
    private String name;
}

@Builder
public class Ming extends Person{
}

这个时候,我们之前的调用的 .builder 都会报错,这是因为@Builder并不支持父类成员属性的构造,@SuperBuilder注解的出现,就是用来解决这个问题。

@SuperBuilder
public class Person {
    private Integer age;
    private String name;
}

@SuperBuilder
public class Ming extends Person{
}

这样子类就可以正常获取到父类的成员属性进行builder构造了。
@SuperBuilder(toBuilder = true)用法
toBuilder属性默认关闭,如果开启,则所有的父类应该也要开启,效果如下:

Ming mingD = Ming.builder()
      .age(11)
      .name("小明")
      .build();
Ming mingF = mingD.toBuilder().name("猪").build();
System.err.println(mingD.toString());
System.err.println(mingF.toString());

通过设置true,所有的类实例会拥有toBuilder方法
这是一个类似深拷贝的一个方法,不会改变原有实例的属性,生成一个新的实例。在toBuilder中有赋值的属性则会改变为赋值属性,没有赋值的以调用的实例中的值为准。
@SuperBuilder(buildMethodName = “execute”, builderMethodName = “helloWorld”, toBuilder = true) 用法
这个用法其实没什么意思,就是自定义方法名,不展开赘述。

 

标签:name,Builder,Ming,SuperBuilder,关于,父类,toBuilder,属性
From: https://www.cnblogs.com/jelly12345/p/17393093.html

相关文章

  • 关于Python爬虫使用代理的问题
    当我们使用爬虫程序进行数据采集时,经常会遇到一些网站对爬虫的限制,例如IP封禁、访问频率限制等。为了解决这些问题,我们可以使用代理服务器来进行爬虫操作。本文将介绍爬虫代理的相关知识。一、什么是爬虫代理?爬虫代理是指在爬虫程序中使用代理服务器进行数据采集的一种方式。代......
  • 关于团队中贡献最后但不被淘汰的理由
    1.态度诚恳,好说话,肯学习钻研,不怕困难2.虽然在团队中的贡献最小,但也贡献很多,花费很多精力3.可以为对内其他成员贡献简单劳动力,带带饭或者打打水搞卫生4.会在下次任务中努力争取更多的贡献,让成员下次轻松点......
  • 关于UnsatisfiedDependencyException问题的解决
    问题描述看到p命名空间使用同样的代码就可以运行,就直接将p改成了c,然后就一直报出这个错误问题解决查看我的相关配置文件,发现都没有问题,然后尝试将user对象的所有参数都给赋值,然后再试一试,然后正确结果就出来了;原来使用c命名空间的话,需要将该对象的所有属性都给赋值,但是p命名空......
  • 关于谷歌浏览器出现“错误代码:net::ERR_UNSAFE_PORT”的解决办法
    搭建项目时需要自己配置端口信息,但是有人搭建之后会出现如下情况  但是换用edge等浏览器没有问题,这是因为chorme浏览器有自己的默认非安全端口,若访问这些端口就会出现这个错误,并且所有采用chorme内核的浏览器都会这样。解决方案是更换自己项目的端口,这里列出所有chorme的......
  • 关于el-progress percentage的值超100以及处理后端返回小数转换报错的处理
    在开发大屏幕数据项目的时候,在el-table中用el-progress展示效率,由于后端返回的是小数,前端需要把0.555555555展示成50%的格式(不展示小数点后的数字),我刚开始写控制台一直报错,用Number()转化了数值还是在控制台报percentage期望的是‘number’,但是捕抓到的是'String'的错误。最后这......
  • 方芳:关于农村公路对乡村振兴的作用
    关于农村公路对乡村振兴的作用武汉江夏路桥工程总公司 青龙南路项目部 方芳一、前言农村公路建设是乡村振兴的重要组成部分,也是现代化农业和农村经济发展的必要条件。本文将从农村公路建设的背景、现状和作用三个方面,探讨农村公路对乡村振兴的作用,希望能够为农村公路建设提......
  • HBuilder 云打包 Android 项目
    一、配置manifest.json参数应用名称 appid 版本号  页面入口 这几个必填项填好  配置桌面显示的图标  配置启动时显示的图片 二、云打包发行->云打包-打原生安装包 这两个广告部分,若不需要可取消 等一会,大约几分钟后,就打包成功。点打开下载......
  • 关于垃圾回收
    前言垃圾回收(GarbageCollection,以下简称GC),就是释放不用的内存,目的是防止内存泄漏。C/C++等较底层的语言需要在分配内存后手动释放内存,而Java、JavaScript等语言则可以在运行时根据需要自动释放内存,这是因为在这些语言的运行环境(如:JVM、V8等)中有GC在悄悄做着一些“杂活”......
  • 关于vue slot 的多级传递使用
    关于vueslot的多级传递使用关于slot以及scope-slot的基本使用,官方文档已经有了详细的介绍:点击这里查看,这里就不复述了。但是在实际的使用过程中,常常会出现外部组件内容需要多级嵌套传递到目标组件,那么slot可以如何实现呢?现在假设有A,B,C三个组件,层级关系为A>B>C(爷爷,父亲,儿子)......
  • 关于If you want an embedded database (H2, HSQL or Derby), please put it on the c
    Considerthefollowing:Ifyouwantanembeddeddatabase(H2,HSQLorDerby),pleaseputitontheclasspath.Ifyouhavedatabasesettingstobeloadedfromaparticularprofileyoumayneedtoactivateit(noprofilesarecurrentlyactive).在网上查找了很多......