发现错误表明String无法转换为util.Map
通过应用程序运行时获得正确的结果。 siteList看起来为[{site_id = 47,site_code = a},{site_id = 48,site_code = ABC},{site_id = 49,site_code = ABCD},{site_id = 54,site_code = ABCE},{site_id = 1,site_code = FXGL}]
public static List<SitesDto> transformSites(List<String> siteList) {
List<SitesDto> sitList = new ArrayList<>();
for (Object object : siteList) {
Map row = (Map) object;----->showing error
final SitesDto site = new SitesDto();
String code = (String) row.get(SITE_CODE);
Object id = row.get(SITE_ID);
site.setSiteId(((Number) id).longValue());
site.setSiteCode(code);
sitList.add(site);
}
return sitList;
}
发现错误表明String无法转换为util.Map
答案 0 :(得分:0)
java.util.Map
接口表示键和值之间的映射。
在这种情况下,siteList是String的集合(它们不是Map所期望的键和值对),因此String无法转换为util.Map的错误也是如此。
传入的列表参数应为List<Map<String,Object>>
希望有帮助。
答案 1 :(得分:0)
您声明一个接受List<String>
参数的方法。由于您说应用程序运行时没有任何明显的错误,因此看来siteList
参数实际上根本不是List<String>
,而是List<Map>
。您可能在其他地方发现了一个findbugs警告,可能是在调用transformSites
的方法中说,您不应该使用原始类型,或者不应该将List<Map>
传递给需要List<String>
参数。您应该先解决该问题。您还应该避免使用原始类型:使用List<whatever>
而不是List
,而使用Map<String, Number>
而不是Map。否则,您将更容易出错。