有什么方法可以实现吗 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使用匕首提供的对象。如果有一个更好的方法,太好了!
1条答案
按热度按时间6ju8rftf1#
在java中没有聪明的(快捷/速记)方法来编写拷贝构造函数。在源代码级别,必须一次分配一个字段。
通常,我只是“咬紧牙关”写代码。但还有其他几种选择:
ide可能有一种生成复制构造函数的方法(eclipse没有,但显然您可以为所有字段生成一个常规构造函数,然后对生成的代码进行一些巧妙的搜索替换;请参见eclipse生成副本构造函数)
您可以编写一些可重用代码,使用反射将字段从一个对象复制到另一个对象。这是相当低效的,但是如果您必须处理字段数量非常多的类,这可能是可以接受的。
你可以用这个
clone()
而不是机械装置。