@RequestMapping(“ / viewall”) public String getAllEmployees(Model model){
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出现错误,因为“类型不匹配:无法从元素类型Object转换为Map.Entry” 预先感谢
答案 0 :(得分:0)
我不知道您的map键,假设键是'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());
}
}
答案 1 :(得分:0)
最快的解决方法是让编译器知道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());
}