通过名称获取员工的详细信息

时间:2017-05-06 17:37:17

标签: java arrays

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, URL,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                             JSONObject result = response.getJSONObject("result");

                             String name = result.getString("name");
                             String formatted_phone_number= result.getString("formatted_phone_number");
                             textView.append(name + " " + " " + formatted_phone_number+ "\n");

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.e("VOLLEY ", "ERROR");
                    }
                });
        requestQueue.add(jsonObjectRequest);

我要做的是检查mylist中的名称是否与emp中的名称匹配,然后打印该员工的详细信息。但我在if条件上的代码会返回for循环而不是打印细节。

2 个答案:

答案 0 :(得分:0)

为此,您必须将name的值存储在String []数组(myList)中,而不是将整个Employee对象存储为String。因此,对初始化该数组的for循环进行以下更改:

for(int i=0;i<employee.size();i++){
        mylist[i]=employee.get(i).getName();
}

现在getName()应该是Employee类的getter方法。

答案 1 :(得分:0)

你的问题中有一些不清楚的事情 - String[] n的目的是什么(无论如何都没有正确宣布),为什么要将员工姓名放入String[]然后再搜索相同的名字?

如果您有ListEmployee个对象,请说employees,并且您希望从此列表中找到与任何单独名称列表中的名称匹配的员工,然后在java - 8下面代码会有所帮助,

List<Employee> result = employees.stream().filter( emp -> tobeFoundNames.contains(emp.getName())).collect(Collectors.toList());

results.forEach( result -> System.out.println(result.getName()));

此处,tobeFoundNames是另一个List<String>,其中包含您要搜索的名称列表。

喜欢 - List<String> tobeFoundNames = Arrays.asList("Wajid","Sofia");

结果是List<Employee>,因为可能有多个匹配项。

假设Employee对象有一个方法 - getName()