使用原生JDBC查询/Statement查询 结果集ResultSet转List<Bean>工具类 & 对转换结果List<Bean>进行stream流处理 筛选 分组报错!堆污染!转换过程有问题!
网上的工具类也不是都不能用,只是我只找到这个可以用。
记一次转载,转换工具类,原文链接:
https://www.iteye.com/blog/ghl116-1155456
转换为List<Bean>后,对其进行stream流处理,进行筛选 分组操作报类型转换错误,可以继续往下看:
主要本次业务查询后对结果集使用stream流进行过滤、分组操作,在collect时报错:hashMap无法转换为自定义Bean。
查询结果集:drugFlowList
报错位置:.collect()
Map<String, List<DrugFlow>> collectOfMarketingCompanyCodeSupplier = drugFlowList.stream() .filter(drugFlow -> drugFlow.isFlowFlag() && drugFlow.isCYSupplierFlow() && StringUtils.isNotBlank(drugFlow.getMarketingCompanyCodeSupplier())) .collect(Collectors.groupingBy(DrugFlow::getMarketingCompanyCodeSupplier, Collectors.toList()));
这里其实和map完全无关,搞不懂为啥报这个错,后来在stackoverflow找到原因了:
查询结果集是我用原生JDBC取出来的,取出来是ResultSet类型,我用一个转换工具类提供的方法进行了奇怪的循环遍历对ResultSet进行了转换,转换为自定义List<Bean>,导致了“堆污染”,欺骗了编译器,因此报错,将转换处理后就没问题了,文首提供的工具类链接本次可用。