这个方法有问题。当用户请求时,它不会输出正确的搜索。
这是我的代码:
System.out.println("Search by Email.");
Employee employeeSearchEmail = MenuMethods.userInputByEmail();
Store.searchByEmail(employeeSearchEmail.getEmployeeEmail());
public Employee searchByEmail(String employeeEmail) {
for (Employee employee : map.values()) {
System.out.println(employee);
map.equals(getClass());
map.equals(employee.getEmployeeEmail());
employee = new Employee(employeeEmail);
;
return employee;
}
return null;
}
public static Employee userInputByEmail() {
// String temp is for some reason needed. If it is not included
// The code will not execute properly.
String temp = keyboard.nextLine();
Employee e = null;
System.out.println("Please enter the Employee Email:");
String employeeEmail = keyboard.nextLine();
// This can use the employeeName's constructor because java accepts the
// parameters instead
// of the name's.
return e = new Employee(employeeEmail);
}
答案 0 :(得分:1)
问题是程序中没有if条件,如下所示:
public Employee searchByEmail(String employeeEmail) {
for (Employee employee : map.values()) {
map.equals(getClass());
if (map.equals(employee.getEmployeeEmail())){
System.out.println(employee);
return employee;
}
}
return null;
}
这一行: 的System.out.println(雇员);
它将打印员工对象,直到找到匹配为止,匹配时它将返回该员工对象..
答案 1 :(得分:0)
你应该这样说
if(employeeEmail.equals(employee.getEmployeeEmail()) return employee;
无需创建Employee
对象的新实例。
答案 2 :(得分:0)
您希望退回具有特定电子邮件地址的员工。因此,只有当前员工的电子邮件地址等于给定的电子邮件地址时,您才应该返回:
public Employee searchByEmail(String employeeEmail)
{
for(Employee employee : map.values())
{
if(employee.getEmployeeEmail().equalsIgnoreCase(employeeEmail.trim()))
return employee;
}
return null;
}
顺便说一下,地图的关键是什么。如果电子邮件地址是键,您只需返回:
return map.get(employeeEmail);