【问题标题】:Objects in Java, how to compare parameters?Java中的对象,如何比较参数?
【发布时间】:2016-10-02 18:06:03
【问题描述】:

谁能帮帮我?我有一个问题,我有一些与客户、卖家和产品有关的系列。我制作了一个 GUI,可以在其中输入卖家、客户和产品数据,例如:姓名、地址、ID 和其他内容。然后我们可以用之前的所有数据来构建销售额。

问题如下,我想做一种报告(可能只是打印销售额),在其中我可以看到每个卖家的销售额。

我一直在尝试使用此代码:

Object name = jcbSeller.getSelectedItem();
    String nameSeller = (String) name;
    System.out.println(nameSeller);

    Sale selectedSale = null;
    Seller selectedSeller = null;
    for(Sale sale : Collection.getSales())
    {
        selectedSale = sale;
        for(Seller seller : Collection.getSellers())
        {
            selectedSeller = seller;
            String name2 = selectedSeller.getName();
            if(nameSeller.equals(name2))
            {
                jtxaSale.setText(selectedSale.toString());
            }
            else
            {
                System.out.println("There is an error");
            }
        }
    }

我把每个卖家的名字都放在一个 JComboBox 中,然后我会检查收藏品是否有销售。然后我将 JComboBox 的名称与卖家集合中包含的卖家名称进行比较。最后,我在控制台中打印销售。但它只打印我完成的第一笔销售,如果我更换卖家,它会打印相同的销售。

我不知道我是否解释了这个问题,我是这个领域的新手。希望您能够帮助我。如果您想要更多代码,我会放上它。谢谢

【问题讨论】:

  • 人们可能会为您提供帮助。如果您需要帮助,请将您的帖子标题从关于需要帮助的句子更改为对您的问题的非常简短的描述。此外,如果您将代码翻译成英文,它将对人们有所帮助。
  • 抱歉,非常感谢。
  • 不要道歉,只是edit你的问题来解决它。
  • 是否有任何打印错误,例如您的“Hay un error”?
  • @Orin2005 是的,它只打印我完成的第一笔交易,如果我更换卖家,else 语句会打印“有错误”。

标签: java object collections


【解决方案1】:

我怀疑您的问题是由于循环遍历每个卖家的每个销售,而两者之间没有参考。您最终会覆盖您为每次销售设置的价值

...
if(nameSeller.equals(name2))
{
    jtxaSale.setText(selectedSale.toString());
    System.out.println("Adding selectedSale ("+ selectedSale.toString() + ") for selectedSeller ("+selectedSeller.toString()+")");
}
else
{
    System.out.println("There is an error");
}

试试这个,看看打印是否如您所愿。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    相关资源
    最近更新 更多