我有一个名为xyz的方法,它返回一个对象。
private XYZ xyz() {
return abc;
}
我想在两个不同的地方使用此方法,但我只想调用该方法一次。
我的意思是我第一次调用方法来获取对象。
XYZ aaa = xyz();
这里我有一个对象'aaa'。我想在不同的地方使用相同的对象,但我不能使用这个对象,因为这是私有的。所以我想做的是从'aaa'创建一个名为'bbb'的新对象而不调用该方法。 就像bbb = aaa; 请帮我如何从现有对象创建一个新对象或创建一个具有不同名称的重复对象。
提前致谢
答案 0 :(得分:2)
您可以通过实现可克隆接口来使用clone方法: {{3P>
答案 1 :(得分:1)
所以你只想要一个实例 - 你可以调用xyz()
方法两次,它不会创建一个新对象。
如果你想要两个实例 - 你需要克隆。检查this answer。
答案 2 :(得分:1)
我认为他想要克隆XYZ对象,因为它在代码中是私有的(getter方法也是如此)并且在外部不可用。另一个想法是让getter公开或写一个公共的getInstance()方法(例如)返回Singleton。
答案 3 :(得分:0)
您所谈论的内容可以使用复制构造函数完成:
示例:
private field1;
private field2;
public XYZ(XYZ in)
{
this.field1 = in.field1;
this.field2 = in.field2;
}
因此,此构造函数将一个名为XYZ的对象作为参数调用,并将所有字段复制到此XYZ对象。
我认为如果你只有一个名为getXYZ()
的方法返回对XYZ对象的引用会更好。
public XYZ getXYZ()
{
return this;
}
答案 4 :(得分:0)
也许你可以试试这个:(对于深刻的打扮)