Java toString方法似乎只工作一次,即使它被称为multiple

Java toString方法似乎只工作一次,即使它被称为multiple,java,linked-list,tostring,Java,Linked List,Tostring,我试图弄明白为什么在添加另一个比萨饼时,我的toString()函数只能工作一段时间。这是第一个创建的比萨饼的输出,正如预期的那样,运行良好 $ kitchen = new Kitchen() $ pizza = new Pizza() $ pizza.toString()

我试图弄明白为什么在添加另一个比萨饼时,我的toString()函数只能工作一段时间。这是第一个创建的比萨饼的输出,正如预期的那样,运行良好

$ kitchen = new Kitchen()                                              
$ pizza = new Pizza()                                                   
$ pizza.toString()                                                      

-> "no crust pizza with no toppings and no sauce: $0.00"              
$ pizza.ingredients.add(kitchen.ingredients.get(1))                     
-> true                                                                 
$ pizza.toString()                                                     

-> "Thick crust pizza with no toppings and no sauce: $3.50"             
$ pizza.ingredients.add(kitchen.ingredients.get(2))                     
-> true                                                                
$ pizza.toString()                                                 

-> "Thick crust pizza with no toppings and Tomato sauce: $4.50"         
$ pizza.ingredients.add(kitchen.ingredients.get(5))                   
-> true                                                            
$ pizza.toString()                                                     

-> "Thick crust pizza with Olives and Tomato sauce: $6.00"           
$ pizza.ingredients.add(kitchen.ingredients.get(7))                    
-> true                                                              
$ pizza.toString()                                                     

-> "Thick crust pizza with Olives, Beef and Tomato sauce: $8.75"      
$ pizza.ingredients.add(kitchen.ingredients.get(4))                     
-> true                                                                
$ pizza.toString()                                                      

-> "Thick crust pizza with Olives, Beef, Capsicum and Tomato sauce:
但另一个比萨饼的产量如下

EXPECTED OUTPUT                                                         Current output

Creating new pizza                                                      Creating new pizza
Ingredient(s): Thin                                                     Ingredient(s): Thin
Thin crust pizza with no toppings and no sauce: $3.00                <
Ingredient(s): Tomato                                                   Ingredient(s): Tomato
Thin crust pizza with no toppings and Tomato sauce: $4.00            <
Ingredient(s): Jalapenos                                                Ingredient(s): Jalapenos
Thin crust pizza with Jalapenos and Tomato sauce: $5.00              <
Ingredient(s): Beef                                                     Ingredient(s): Beef
Thin crust pizza with Jalapenos, Beef and Tomato sauce: $7.75        <
这个方法被我的厨房类调用,就像这样

  public void nameMatch(String match){
        Pizza pizza = new Pizza();
        for (Ingredient ingredient : ingredients){
            if (match.equals(ingredient.ingtoString())){
                pizza.testing(ingredient);
            }
        }
        pizza.toString();
    }
最后,这是用来制作比萨饼并调用这些方法的

public void create() {
    System.out.println("Creating new pizza");
    String ingredient1 = "";
    while (!ingredient1.equals(".")){
        System.out.print("Ingredient(s): ");
        ingredient1 = (In.nextLine());
        kitchen.nameMatch(ingredient1);
    }
    System.out.println("ORDER SUMMARY");
    kitchen.nameMatch(ingredient1);
}

快速提示所有这些方法都分为3个独立的类

每次调用
nameMatch
创建新的比萨饼时,将配料添加到比萨饼中,然后将比萨饼扔掉。我假设你想制作一个比萨饼和所有的配料


另外,
nameMatch
实际上不会打印任何内容
pizza.toString()
会将pizza转换为字符串,但如果要打印该字符串,则需要调用
System.out.println
——例如
System.out.println(pizza.toString())

每次调用
nameMatch
创建新的比萨饼时,将配料添加到比萨饼中,然后将比萨饼扔掉。我假设你想制作一个比萨饼和所有的配料


另外,
nameMatch
实际上不会打印任何内容
pizza.toString()
会将pizza转换为字符串,但如果要打印该字符串,则需要调用
System.out.println
——例如
System.out.println(pizza.toString())

请阅读,然后将缺少的部分添加到您的问题中。喜欢密码?!我很抱歉,编辑成应该引起问题的内容:)向我们展示一些小代码片段并不能帮助我们重现您的问题。如果需要帮助查找错误,您需要显示整个程序。当前的编辑是否有助于解决该问题?您使帮助变得非常困难。你为什么不能给我们看你的整个节目?您不需要帮助吗?请阅读,然后将缺少的部分添加到您的问题中。喜欢密码?!我很抱歉,编辑成应该引起问题的内容:)向我们展示一些小代码片段并不能帮助我们重现您的问题。如果需要帮助查找错误,您需要显示整个程序。当前的编辑是否有助于解决该问题?您使帮助变得非常困难。你为什么不能给我们看你的整个节目?你不需要帮助吗?你的假设是正确的,我该如何创建一个比萨饼直到它完成?@Dan运行
new pizza()
一次,然后调用
测试该比萨饼对象很多次。尝试之后,我一直得到“没有配料和酱料的无皮比萨饼:$0.00”每次预测后,如果你的假设是正确的,我该如何创建一个比萨饼直到它完成?@Dan运行
new pizza()
一次,然后调用
测试该比萨饼对象很多次。尝试之后,我在每种配料后都会得到“没有配料和酱料的无皮比萨饼:$0.00”
public void create() {
    System.out.println("Creating new pizza");
    String ingredient1 = "";
    while (!ingredient1.equals(".")){
        System.out.print("Ingredient(s): ");
        ingredient1 = (In.nextLine());
        kitchen.nameMatch(ingredient1);
    }
    System.out.println("ORDER SUMMARY");
    kitchen.nameMatch(ingredient1);
}