我在我的主要Recipe recipeOne = new Recipe("Pepperoni Pizza");
深对象数组实例的复制,爪哇
这个对象做出一个目的是定义在这里建造这个对象数组的一个实例!
public class Recipe implements Cloneable{
String Name;
final int INGREDIENT_ARRAY_MAX = 10;
Ingredient Recipe[] = new Ingredient[INGREDIENT_ARRAY_MAX];
public Recipe(String name){
Name = name;
}
所以我期待,使这个对象的深拷贝和该行Recipe ressippi = (Recipe) recipe.clone();
并在这里向我发送!
public Object clone(){
Recipe cloneRec = new Recipe(Name);
return cloneRec;
}
我知道这是目前一个浅拷贝,因为该方法只传递引用,所以如果我是试图在我的新目标,这是recipeOne的克隆一个名称的改变...这将改变两者的他们名。很显然,我不想那样,我对此很遗憾,任何人都可以帮忙吗?
编辑:@Rohit耆那教
无论我的食谱类,以及我的阶级成分(配方数组保存对象)具有的toString方法和食谱呼吁成分以打印这一切在一个可爱的小格式。当我把它叫做我的“recipeOne”对象(一个叫辣椒比萨饼)时,我得到了“意大利辣香肠比萨:1.0磅面团,8.0盎司酱汁,10.0盎司奶酪”
然后我着手制作物品ressippi并将其设置为recipeOne的克隆,所以这里都很好...然后我将ressippi的名称更改为“Pineapple Pizza”,并且打印出良好的效果,但它不打印recipeOne存储的3个配料对象,这是假定要做的!
看到这个答案: [链接](http://stackoverflow.com/a/64066/1809603) – 2013-02-11 09:51:38
怎么样'新的String (姓名)'? – 2013-02-11 09:57:50