当前位置: 首页 > 知识库问答 >
问题:

尝试用Java编写一个方法,在给定customerID的情况下搜索数据库列表并返回Customer对象

宇文飞翮
2023-03-14

我正在为一门Java课程创建一个客户经理应用程序。我把它按照要求分成3个包。第一个包有一个名为客户的类,它模拟客户及其实例变量,如CusterID。第二个包是一个包含ArrayList的客户数据库。第三个包将是一个菜单驱动的用户界面,允许用户在4个选项之间进行选择。目前,我被困在尝试编写一个方法,该方法将在列表中搜索给定的客户ID并返回一个客户对象。

在customer数据库类中,我从方法中的用户那里获取customerID。然后,我运行一个for循环,该循环应该遍历该方法,以查看是否找到customerID。如果id匹配,我对如何返回客户对象有问题。

public Customer searchCustomer(String customerID) {

     System.out.println("Enter customer ID you want to find:");
     customerID = scnr.next();
     Customer c;

     for (int i = 0, i < customerList.size(); i++ {
          c = customerList.get(i);
          if (customerList.get(i).equals(customerID) {
          String foundID = customerID;
          }
     }
}         

我想在方法的末尾返回客户c,但不知道如何做到这一点。

共有3个答案

顾俊楚
2023-03-14

你犯的一些潜在错误是:

>

  • 向您未使用的方法传递参数。要么在方法之外执行Scanner,然后将ID传递给方法,要么在方法中执行Scanner部分,并且没有参数。不过,前一种方法通常是首选方法。

    将客户与字符串进行比较。您需要将用户输入的ID与对象的ID字段进行比较。用户输入的字符串永远不会等于整个客户对象。

    你没有从该方法返回任何内容。一旦你找到了你要找的客户,你需要一份退货声明。

    此外,您可以使用Java的“增强for循环”使代码更简洁。下面的一些代码假设您的客户对象使用字符串作为其ID,并且具有一个。方法来获取其ID。

    下面是一些需要搜索客户的代码。这可以采用另一种方法。

    System.out.println("Enter customer ID you want to find: ");
    customerID = scnr.next();
    Customer customer = searchCustomer(customerID);
    

    这是在客户列表中循环的搜索方法

    public Customer searchCustomer(String customerID) {
        for(Customer customer : customerList) {
            if (customer.getId().equals(customerID) ) {
                return customer;
            }
        }
        return null;  // Or perhaps throw an exception.
    }  
    

    请注意,我对我没有看到的代码的其他部分的结构做了很多假设,所以如果你想使用它,你很可能必须修改这个代码示例,但希望它能让你走上正轨。

  • 杨和蔼
    2023-03-14

    将Customer对象与CustomerId进行比较。

    将代码更改为

    if (customerList.get(i).getId().equals(customerID) {
        return customerList.get(i);
    }
    
    苗信鸥
    2023-03-14

    在if语句中,可以只写返回c。这将返回第一个匹配的客户。在方法结束时,如果没有找到客户,可以返回null或抛出异常。

     类似资料:
    • 问题内容: 有没有办法在不使用Java代码的情况下在H2中编写函数?我的要求是在不使用Java代码的情况下将用SQL编写的函数转换为H2。我在不同的门户网站中找到了许多使用Java代码执行相同操作的示例。对你的帮助表示感谢。 问题答案: 当前,H2仅支持以Java或相关语言(例如Groovy或Scala)编写的功能。不支持PL / SQL(Oracle) 和T-SQL(MS SQL Server,

    • 问题内容: 所以我看过很多这样的例子: 您似乎可以通过成功函数以警报的形式查看从c#方法返回的数据。但是,如果我想在函数调用之外访问此“ input + 1”数据,该怎么做呢?另外我不确定如何调用没有参数的方法? 最后,我想使用通过ajax调用的ac#方法返回的JSON数据填充下拉列表,但是我不确定如何处理似乎卡在函数中的JSON数据呼叫? 抱歉,我是Jquery / AJAX / etc的新手,

    • 本文向大家介绍请编写一个C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值。相关面试题,主要包含被问及请编写一个C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值。时的应答技巧和注意事项,需要的朋友参考一下 【参考答案】 int s earch(char* cpSource, intn , char ch) // 起始地址,搜索长度,目标字符 { i

    • 我正在尝试将嵌套映射转换为JSONObject,如下所示: (我试着按照这个例子放HashMap 我这样称呼它 我不明白的是为什么 null?据我所知,返回一个

    • 我试图找出使用VAVR的Try的惯用方法。我正在查看的用例必须执行以下步骤: -获取鞋的列表(调用可以引发选中的异常) -清理每个鞋(调用可以引发选中的异常) -还原每个鞋(调用可以引发选中的异常) -返回清理/还原的鞋的列表 这是我的示例玩具代码,其中processRequest方法购买n双鞋,清洗 我的问题是:如何简化这种逻辑?是否存在可以消除的方法调用?是否可以提高可读性?

    • 我试图模拟一个方法,从另一个方法调用,而不使用类对象。在指定的代码中,我想模拟methodA(),它调用methodB(),而不使用对象。 我无法更改现有类中的任何内容。 我已经尝试过: 莫基托。doReturn(“id”)。当(反对)。方法b(员工)