苦苦于为我的对象创建一个合适的打印方法

时间:2018-02-14 03:40:27

标签: java arrays oop printing

所以我有一个对象数组存储在一个标题为Warhouse的类中。在用户输入String之后,我希望将它传递给放置在类中的方法,该类不包含通过Warehouse类中对象数组的引用进行匹配的对象数组,然后打印出详细信息逐行:

public void printItemDetail(String itemNo)
{
    Item [] items = inventory.getItems();
    for(int i = 0; i < items.length; i++)
    {
        if(itemNo.equals(items[i].getItemNo()))
        {
            System.out.println(itemNo);
            System.out.println(items[i].getItemName());
        }
    }

此方法位于我的对象类中。我假设我可以摆脱get方法和对象数组,因为它已经包含在类本身中了?

2 个答案:

答案 0 :(得分:0)

你需要调用loadData来为对象赋值;然后在validateItemNo比较itemNo ==(ur object).itemNo ....如果&#39; true&#39;,使用object调用getter。希望这能给你一些想法!

答案 1 :(得分:0)

您的代码中存在错误。

  1. 您应该在sc.nextLine()
  2. 之前放置System.out.println("Please Enter the Item Number");
  3. 要比较两个字符串之间的相等性,请使用equals()代替==

     if (itemNo != "A11111" && itemNo != "B22222" && itemNo != 
       "C33333" && itemNo != "D44444" && itemNo != "E55555") {
            .......
    }
    

    上面的代码完全错了。你应该这样写

    if (!itemNo.equals("A11111") && (!itemNo.equals("B22222")) && (!itemNo.equals("C33333")) && (!itemNo.equals("D44444")) && (!itemNo.equals("E55555"))) {
             ......  
     }
    
  4.   

    假设用户输入“A11111”我希望它打印出所有细节   项目编号为A11111的项目

    因此,如果您想将用户输入(A11111)与items数组进行比较,请像这样写

     if(itemNo.equals("A11111"))
     {
         loadData();   //  assign values to objects
     }