Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java searchByEmail方法不起作用_Java_Search_Hashmap - Fatal编程技术网

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对象。让我们