我在创建一个好的复制构造函数时遇到了麻烦。我希望能够创建一个新的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;
}
但是这使得副本在原件
时发生了变化答案 0 :(得分:0)
我猜你得NullPointerException
,因为pizza01
未初始化。使用一些默认值对其进行初始化,然后将其属性设置为第一个代码段。