【问题标题】:Struggling to create an appropriate print method for my object努力为我的对象创建合适的打印方法
【发布时间】:2018-02-14 03:40:27
【问题描述】:

所以我有一个对象数组存储在一个带有类标签的 Warhouse 中。用户输入字符串后,我希望将其传递给放置在一个类中的方法,该方法不包含通过 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 方法和对象数组,因为它已经包含在类本身中?

【问题讨论】:

  • 那么你的问题是什么?是什么让你发布问题?
  • 在我的主要案例 1 中。假设用户输入字符串“A11111”,这是我的仓库类中的一个项目。我将如何开发一种方法来打印出该项目的所有其他特征?我正在尝试在我的项目类中实现它
  • 您需要先尝试编写该代码。然后我们可以帮助你。给出的代码中有 95% 与您的问题无关。了解如何创建minimal reproducible example,您将获得更高质量的答案......或者可能在发布之前自己回答您的问题。
  • 我编辑了我的问题
  • @Mcbever 库存指的是什么?

标签: java arrays oop printing


【解决方案1】:

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

【讨论】:

  • 所以我会在我的 main 中调用 loadData?
  • 是的..还有为什么不必要的情况?
  • 哦,好吧,现在我明白了。所以在我的 printItemDetail 方法中,我必须通过我的对象数组匹配字符串 itemNo,但我不确定如何做到这一点,因为它们存储在我的 Warehouse 类中
  • 看到了编辑...我记得你有很多吸气剂。您需要在匹配时调用属于该对象的每个 getter..
  • 是的,但它们存在于我的 printItemDetail 方法所在的 Item 类中。我尝试使用 getter 访问仓库类中的对象数组,然后在该方法中将它们存储到单独的数组中,然后从那里处理它。
【解决方案2】:

你的代码有问题。

  1. 你应该把sc.nextLine()放在System.out.println("Please Enter the Item Number");之前
  2. 要比较两个字符串之间的相等性,请使用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"))) {
             ......  
     }
    

假设用户输入“A11111”我希望它打印出所有详细信息 货品编号为A11111的货品

所以如果你想比较用户输入 (A11111) 和 items 数组,这样写

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

【讨论】:

  • 是的,我想通了,我将验证方法更改为上述方法,但我不确定为什么我会在之后立即使用 loadData 方法
  • 在我的 printItemDetail 方法中,我不能只访问仓库类中的项目对象数组并从那里对它们进行操作吗?
  • 可以传参
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多