有复制构造函数的麻烦

时间:2014-11-04 00:06:48

标签: java copy-constructor

我在创建一个好的复制构造函数时遇到了麻烦。我希望能够创建一个新的PizzaOrderNew对象,该对象在作为更改副本的对象时不会更改。问题是,我的PizzaOrderNew实例变量都是另一个类的对象,Pizza包含实例变量,cheese,size,ham,pepperoni以及典型的访问器和mutator。  我试过了:

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;        
} 

但是这使得副本在原件

时发生了变化

1 个答案:

答案 0 :(得分:0)

我猜你得NullPointerException,因为pizza01未初始化。使用一些默认值对其进行初始化,然后将其属性设置为第一个代码段。