gpt4 book ai didi

java - 如何避免编写许多非常相似的 setter 方法?

转载 作者:行者123 更新时间:2023-12-01 17:45:10 26 4
gpt4 key购买 nike

我正在编写一段适用以下内容的代码:

  1. 我需要在 A 类实例中实例化许多类似的对象
  2. 每个对象都会在 B 类中获得自己的 setter,这与 A 类实例中创建的对象一一对应IE。在A类中:

        B b = new B();

    final SomethingA somethingA1 = new SomethingA("input1");
    b.setSomethingA();

    ...
    final SomethingB somethingB15 = new SomethingB("input15");
    b.setSomethingB15();
    ...

    final SomethingA somethingA23 = new SomethingA("input23");
    b.setSomethingA23();

所有“东西”都继承自同一个类。

  • setter 不执行任何操作,但:

    public void setSomethingX(somethingX){
    this.somethingX = somethingX;
    }
  • 我真的不想编写 23 个功能几乎相同的 setter。有没有类似多功能 setter 之类的东西?

    其上下文是在非常特定的上下文中准备 HTTP 响应并使用一些非常特定的框架。显然,这种做法可以节省其他地方的大量工作(我对此没有影响)。另外,正如您可能知道的那样,我是一名新手开发人员。

    最佳答案

    有几种技术可以减少 setter:

    1)创建以B为参数的构造函数

    class A {

    private B b;

    public A(B b) {
    this.b = b;
    }
    }

    A a = new A(new B());

    2)使用构建器模式(使用lombok将很容易实现):

    @Builder // lombok annotation
    class A {
    private B b;
    }

    A a = A.builder().withB(b).build();

    3)使用工厂方法:

    class A {

    private B b;

    public static A newInstance(B b) {
    A a = new A();
    a.b = b;
    return a;
    }

    }

    A a = A.newInstance(new B());

    关于java - 如何避免编写许多非常相似的 setter 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56323273/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com