使用原生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>,导致了“堆污染”,欺骗了编译器,因此报错,将转换处理后就没问题了,文首提供的工具类链接本次可用。

 

posted @ 2023-01-04 11:07  REAL1N  阅读(291)  评论(0编辑  收藏  举报