Java searchByEmail方法不起作用
我对这种方法有意见。当用户请求时,它不会输出正确的搜索 这是我的密码:Java searchByEmail方法不起作用,java,search,hashmap,Java,Search,Hashmap,我对这种方法有意见。当用户请求时,它不会输出正确的搜索 这是我的密码: System.out.println("Search by Email."); Employee employeeSearchEmail = MenuMethods.userInputByEmail(); Store.searchByEmail(employeeSearchEmail.getEmployeeEmail()); public Employee searchByEmail(String employeeEmai
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);
}
你应该这样说
if(employeeEmail.equals(employee.getEmployeeEmail()) return employee;
无需创建
Employee
对象的新实例。您希望返回具有特定电子邮件地址的员工。因此,只有当前员工的电子邮件地址等于给定的电子邮件地址时,您才应返回:
public Employee searchByEmail(String employeeEmail)
{
for(Employee employee : map.values())
{
if(employee.getEmployeeEmail().equalsIgnoreCase(employeeEmail.trim()))
return employee;
}
return null;
}
顺便问一下,地图的钥匙是什么。如果电子邮件地址是密钥,您只需返回:
return map.get(employeeEmail);
问题是,您的程序中没有这样的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;
}
这一行:
系统输出打印项次(员工)
它将打印employee对象,直到找到匹配项,匹配时将返回该employee对象。我在代码的if语句行中收到一个错误。Nope name是关键。电子邮件和id继承自employee类。EmployeeStore.searchByEmail(EmployeeStore.java:83)MainApp.start(MainApp.java:115)MainApp.main(MainApp.java:12)线程“main”java.lang.NullPointerException中的异常作为参数传递给searchEmail的字符串为null或当前员工为null。试着调试或者至少试着打印员工的电子邮件。我一直在尝试所有这些,但我就是搞不懂。当我这么做的时候,它会打印出整个商店。整个商店意味着所有员工的数据。是的,所有员工。如果是这样,那是因为System.out.println(员工);它将一直打印,直到找到匹配项,匹配时将返回employee对象。让我们