java—是否有一种在构造函数中复制对象的速记方法?

gpnt7bae  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(319)

有什么方法可以实现吗 this = that 在构造函数中? that 是我要复制的对象(因此是与 this , this 作为对象引用)。

class Foo {

  private final Bar bar;

  public Foo() {
    Foo that = DaggerFactory.create().getFoo();
    // this = that; but it's not working!?
  }

  @Inject
  public Foo(Bar bar) {
    this.bar = bar;
  }

  // Other methods
}

我见过复制构造函数的例子,它们一个接一个地复制成员。 this.bar = that.bar . 这是我最后的选择,因为我在类中有一些成员,我不想不必要地“混乱”我的代码。
p、 我确实希望通过空构造函数示例化对象,因为这就是aws lambda的工作方式(我将在这里部署它)。到目前为止,我还没有找到任何方法,我可以让lambda使用匕首提供的对象。如果有一个更好的方法,太好了!

6ju8rftf

6ju8rftf1#

在java中没有聪明的(快捷/速记)方法来编写拷贝构造函数。在源代码级别,必须一次分配一个字段。
通常,我只是“咬紧牙关”写代码。但还有其他几种选择:
ide可能有一种生成复制构造函数的方法(eclipse没有,但显然您可以为所有字段生成一个常规构造函数,然后对生成的代码进行一些巧妙的搜索替换;请参见eclipse生成副本构造函数)
您可以编写一些可重用代码,使用反射将字段从一个对象复制到另一个对象。这是相当低效的,但是如果您必须处理字段数量非常多的类,这可能是可以接受的。
你可以用这个 clone() 而不是机械装置。

相关问题