当前位置: 首页 > 面试题库 >

使用lombok从现有对象构建对象

宋建柏
2023-03-14
问题内容

可以说我有一个龙目岛注释类

@Builder
class Band {
   String name;
   String type;
}

我知道我可以做:

Band rollingStones = Band.builder().name("Rolling Stones").type("Rock Band").build();

是否有一种简单的方法可以使用现有对象作为模板并更改其属性之一来创建Foo对象?

就像是:

Band nirvana = Band.builder(rollingStones).name("Nirvana");

我在lombok文档中找不到此文件


问题答案:

您可以使用toBuilder参数为实例提供toBuilder()方法。

@Builder(toBuilder=true)
class Foo {
   int x;
   ...
}

Foo f0 = Foo.builder().build();
Foo f1 = f0.toBuilder().x(42).build();

从文档中:

如果使用@Builder生成生成器以生成您自己的类的实例(除非将@Builder添加到不返回您自己的类型的方法中,否则通常是这种情况),您可以使用@Builder(toBuilder
= true)生成类中的一个实例方法,称为toBuilder(); 它创建一个新的构建器,该构建器以该实例的所有值开始。

免责声明:我是lombok开发人员。



 类似资料:
  • 假设我有一个lombok注释类 我知道我能做到: 类似于: 我在龙目岛的文件里找不到这个。

  • 在使用面向对象编程范式时,我们使用对象隐喻来指导程序的组织。数据表示和操作的大部分逻辑都表达在类的定义中。在这一节中,我们会看到,类和对象本身可以使用函数和字典来表示。以这种方式实现对象系统的目的是展示使用对象隐喻并不需要特殊的编程语言。即使编程语言没有面向对象系统,程序照样可以面向对象。 为了实现对象,我们需要抛弃点运算符(它需要语言的内建支持),并创建分发字典,它的行为和内建对象系统的元素差不

  • 在我的项目中,我使用lombok来避免为类编写getter和setter。另外,我正在使用Lombok.Builder构建一个对象,而不是编写新的Obeject()然后设置所有值。 但是当我们有继承关系的时候,当我们想用lombok builder构造子对象的时候,我没有得到父对象的字段。 例如: 子类将如下所示: 请告诉我,有没有办法处理龙目岛的这种情况。

  • 本文向大家介绍使用BeanFactory实现创建对象,包括了使用BeanFactory实现创建对象的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了BeanFactory实现创建对象的具体代码,供大家参考,具体内容如下 说明:  其作用是减少层与层之间的依赖。 实现步骤: 编写2个类(Student,Teacher)再编写beans.properties文件,接着编写BeanFacto

  • 我试图用工厂创建一些单例对象: 我想使用 getInstance(布尔新实例)方法来生成一个新对象或重用现有的单例对象。 如果newInstance为true:我将生成一个新的单例对象 如果newInstance为false:如果myObject为null,则生成一个新的并返回,或者如果myObjects不为null则返回它。 而且这个getInstance(boolean newInstance

  • 我有Class1类的object1。我想将Class1类扩展到Class2,添加一个方法,然后创建Class2的object2,它在所有方法中的行为都与object1完全相同,只是现在它将有一个额外的方法。 Object1.OldMethod应该具有与Object2.OldMethod完全相同的行为。一个愚蠢的方法是编写一个脚本,用class1继承的100多个方法生成新类: 编辑:很抱歉没有把它说