当前位置: 首页 > 知识库问答 >
问题:

在生成器中返回自定义生成对象

戈博易
2023-03-14
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
public class SampleClass {
    private String a;
    private String b;
}
@Builder
public class SampleClassBuilder {
    private String x;
    private String y;

    public SampleClass build() {
        SampleClass sampleClass = new SampleClass();
        sampleClass.setA(x + "testX");
        sampleClass.setB(y + "textY");
        return sampleClass;
    }
}
SampleClass sampleClass = SampleClassBuilder.builder().x("x -- ").y("y---").build().build();

是否有方法重写build方法返回SampleClass以避免执行build.build?

共有1个答案

柳胜
2023-03-14

我不认为Lombok可以这样做:从Builder返回另一个对象。它甚至不能在构建器中调用super。

也许您可以不使用Lombok来定义自己的构建:

public class SampleBuilder {
    private String x;
    private String y;

    public static SampleBuilder builder() {
        return new SampleBuilder();
    }

    private SampleBuilder() {
    }

    public SampleBuilder x(String x) {
        this.x = x;
        return this;
    }

    public SampleBuilder y(String y) {
        this.y = y;
        return this;
    }

    public SampleClass build() {
        SampleClass sampleClass = new SampleClass();
        sampleClass.setA(x + "testX");
        sampleClass.setB(y + "textY");
        return sampleClass;
    }
}

在客户机代码中,您可以看到Lombok类似于对构建器的用法:

SampleClass obj = SampleBuilder.builder().x("x").y("y").build();
 类似资料:
  • 生成器返回值 PHP7支持通过Generator::getReturn获取生成器方法return的返回值。 PHP5中我们约定使用Generator最后一次yield值作为返回值。 <?php final class AsyncTask { public function begin() { return $this->next(); } //

  • 我有一个自定义文件,其中包含我所有图像的路径及其标签,我在一个数据框中加载使用: MyIndex有两列感兴趣的ImagePath和ClassName 接下来我做一些训练测试拆分和编码输出标签为: 我面临的问题是一次性加载的数据太大,无法放入当前的机器内存,因此我无法处理完整的数据集。 我曾尝试使用datagenerator,但不想遵循它遵循的目录约定,也无法消除增强部分。 问题是,是否有一种方法可

  • 问题内容: 我想在Eclipse中生成自定义方法,就像我们可以生成toString,getter和沉降器的方式一样(右键单击-> source->)。谁能告诉我这样做涉及什么? 谢谢, 荷兰人 问题答案: 您可以在最近(Eclipse Galileo 3.5)生成动作之后添加自己的动作, 使用主动贡献URI: 具有活动操作定义标识符: 使用有效贡献项目类:(包) 来自贡献插件:org.eclips

  • 我使用pyodbc和pandas-read_-sql从Oracle数据库中提取数据。 当我进入这一行时,我没有看到任何错误 但是当我试着看的时候 我得到这个错误 我对这一错误的含义或可能的原因进行了研究,但没有得出令人满意的答案。 使用chunksize的原因是我有一个包含6000万行的Oracle db表,并计划以位的形式下载,然后将它们放在一起,就像这里:如何从sql查询创建一个大数据帧而不耗

  • 假设有一个SessionFactory的生产者(举个例子): 不,我可以这样使用我的数据库对象: 到目前为止,一切都很好。因此,让我们假设这些东西是在一个框架中实现的,并且将被几个应用程序使用。 现在,一个应用程序决定使用另一个SessionFactory,因此它实现了自己的生产者和一个限定符:

  • 通过使用此链接在Eclipse中安装新软件,我已经安装了场景构建器(e(fx)clipse 2.4.0)。我还尝试过使用Eclipse Marketplace进行安装,这两种方法都给了我错误,当我尝试编辑一些东西时,它给了我这个错误: 我已经在我的系统上到处搜索了绝对路径,有些人说它在: 我正在使用: Eclipse 4.6.3 基于Antergos-Arch Linux的发行版