java - 尝试用 Java 编写一个方法,该方法将搜索数据库列表并返回一个 Customer 对象,给定一个 customerID
问题描述
我正在为 Java 课程创建一个客户管理器应用程序。我根据要求将它分成 3 个包。第一个包有一个名为 Customer 的类,它对客户及其实例变量进行建模,例如 customerID。第二个包是包含 ArrayList 的客户数据库。第三个包将是一个菜单驱动的 UI,允许用户在 4 个选项之间进行选择。目前,我一直在尝试编写一个方法,该方法将在列表中搜索给定的 customerID 并返回一个 Customer 对象。
在客户数据库类中,我在方法中从用户那里获取客户 ID。然后,我正在运行一个 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,但不知道如何执行此操作。
解决方案
您正在犯的一些潜在错误是:
将参数传递给您未使用的方法。要么
Scanner
在方法之外做一些事情,然后将 ID 传递给方法,要么在方法中做Scanner
部分并且没有参数。不过,前一种方法通常是首选方法。将客户与字符串进行比较。您需要将用户输入的 ID 与
Customer
对象的 ID 字段进行比较。用户输入的字符串永远不会等于整个Customer
对象。您没有从该方法返回任何内容。一旦你找到
Customer
你正在寻找的,你需要一个return
声明。
此外,您可以使用 Java 的“增强的 for 循环”使代码更简洁。下面是一些代码,假设您的Customer
对象使用 aString
作为它们的 ID,并且.getID()
在它们上有一个方法来获取它们的 ID。
这是一些需要搜索客户的代码。这可以是另一种方法。
System.out.println("Enter customer ID you want to find: ");
customerID = scnr.next();
Customer customer = searchCustomer(customerID);
这是遍历 customerList 的搜索方法
public Customer searchCustomer(String customerID) {
for(Customer customer : customerList) {
if (customer.getId().equals(customerID) ) {
return customer;
}
}
return null; // Or perhaps throw an exception.
}
请注意,我对我未见过的代码的其他部分的结构做了很多假设,所以如果你想使用它,你很可能必须修改这个代码示例,但希望它能让你在正确的轨道上。
推荐阅读
- python - Python3: Give unused interpreter memory back to the OS
- c - How does select() monitor without using cpu cycles to poll
- firebase - AutoDisposeStreamProvider is not being disposed at loggin out
- sql - "column doesn't exist" when using a WHERE clause in joined tables
- node.js - win机器上没有安装Node JS
- logging - How to show tqdm progress in MetaFlow?
- c++ - How to retrieve an index within a lambda for a concatenated range?
- firebase-authentication - get idToken with firebase auth emulator with postman
- python - How to call a wizard in write function Odoo 14
- c++ - static or dynamic initialization?