-1
我在創建一個好的複製構造函數時遇到了問題。我希望能夠創建一個新的對象,該對象在它作爲更改副本的對象時不會更改。問題是,我的PizzaOrderNew
實例變量是另一個類的所有對象,具有實例變量,奶酪,大小,火腿,意大利辣香腸的比薩餅以及典型的訪問器和增變器。 我試過了:複製構造函數有問題
public PizzaOrderNew(PizzaOrderNew otherPizzaOrderNew)
{
pizza01.setSize(otherPizzaOrderNew.pizza01.getSize());
pizza01.setHam(otherPizzaOrderNew.pizza01.getHam());
pizza01.setCheese(otherPizzaOrderNew.pizza01.getCheese());
pizza01.setPepperoni(otherPizzaOrderNew.pizza01.getPepperoni());
}
但是這會引發異常。我已經試過:
public PizzaOrderNew(PizzaOrderNew otherPizzaOrderNew)
{
pizza01 = otherPizzaOrderNew.pizza01;
}
但是這使得它如此當原始確實
你可以發佈PizzaOrderNew類,它給出了什麼異常? – 2014-11-04 00:08:48
第二個片段「失敗」,因爲你真正分配的是對對象的引用,而不是對象本身的值。換句話說,你的副本根本就不是副本。 – tommyo 2014-11-04 00:09:11
Dici是正確的,我得到一個空指針異常。我正在嘗試Dici的解決方案。我已經將pizza01初始化爲默認值,並且它仍然會生成一個NullPointerException。我相信Dici和tommyo都是正確的,只有一小部分不見了。你有沒有更多關於班級的信息?非常感謝你們 – user3624385 2014-11-04 01:52:25