在处理查询出来的数据进行过滤时,出现类型转换异常报错:
java.lang.ClassCastException: class java.util.HashMap cannot be cast to class java.util.Collection (java.util.HashMap and java.util.Collection are in module java.base of loader 'bootstrap')
将(Collection<?> collect) 改成Collections.singleton(collect)
错误代码
/*过滤数据*/
Map<String, Long> collect = list.stream()
.filter(x -> ObjectUtil.isNotEmpty(x.getSchool()))
.collect(Collectors.groupingBy(Major::getSchool, Collectors.counting()));
/*封装(返回给前端的)数据结果*/
List<Map<String,Object>> map = new ArrayList<>();
if (CollectionUtil.isNotEmpty((Collection<?>) collect)){
for (String key : collect.keySet()){
HashMap<String, Object> row = new HashMap<>();
row.put("name",key);
row.put("value",collect.get(key));
map.add(row);
}
}
正确代码
/*过滤数据*/
Map<String, Long> collect = list.stream()
.filter(x -> ObjectUtil.isNotEmpty(x.getSchool()))
.collect(Collectors.groupingBy(Major::getSchool, Collectors.counting()));
/*封装(返回给前端的)数据结果*/
List<Map<String,Object>> map = new ArrayList<>();
if (CollectionUtil.isNotEmpty(Collections.singleton(collect))){
for (String key : collect.keySet()){
HashMap<String, Object> row = new HashMap<>();
row.put("name",key);
row.put("value",collect.get(key));
map.add(row);
}
}