Использование RestTemplate для вызова ResponseEntity другого сервиса RESTful в Java - PullRequest
0 голосов
/ 31 августа 2018

@ RequestMapping ( "/ viewall") public String getAllEmployees (модель) {

    RestTemplate restTemplate = new RestTemplate();

    @SuppressWarnings({ "unchecked", "rawtypes" })
    Collection<Map> entity = (ArrayList<Map>) restTemplate.getForObject("http://localhost:8080/employees", Collection.class);

            List<Employee> tempListForEmployee = new ArrayList<>();

    for(Map map : entity) {

        for(Map.Entry entry : map.entrySet()) { // map.entrySet() ..1
            tempMapForEmployee.add((Employee) entry.getValue());
        }

    }

    model.addAttribute("emp", tempMapForEmployee);

    return "viewall";
}

Почему ..1 выдает ошибку как «Несоответствие типов: невозможно преобразовать объект типа объекта в Map.Entry» Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Самое быстрое решение - сообщить компилятору об аргументах Map

    for (Map<?,?> map : entity) {
        for (Map.Entry<?, ?> entry : map.entrySet()) {
            tempListForEmployee.add((Employee) entry.getValue());
        }
    }

Но вы могли бы подумать об улучшении этого кода, например,

    for (Map<?,Employee> map : entity) {
        tempListForEmployee.addAll(map.values());
    }
0 голосов
/ 31 августа 2018

Я не знаю о вашем ключе карты, предполагая, что ключ 'String'

Вместо ..

for(Map map : entity) {

    for(Map.Entry entry : map.entrySet()) { // map.entrySet() ..1
        tempMapForEmployee.add((Employee) entry.getValue());
    }

}

Используйте ниже.

for(Map /*Mention the map key, value type here <key,value>*/ map: entity) {

    for(Map.Entry<String, Employee>  entry : map.entrySet()) { // map.entrySet() ..1
        tempMapForEmployee.add((Employee) entry.getValue());
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...