业务场景
我们需要提供一个ProductCollectParam
类型的参数调用方法,但我们的参数是List
类型的
强制类型转换后报错
试着将ProductCollectParam
强制类型转换为List
这里报错了,告诉我们不能进行强制类型转换。
解决方案1—for循环转换
List<Object> productObj = collectMapper.selectObjs(wrapper);
// 需要提供的类型是ProductCollectParam,因而我们创建一个ProductCollectParam对象
ProductCollectParam productCollectParam = new ProductCollectParam();
// 我们的数据是List集合,因而创建一个List类接收
List<Integer> productIds = new ArrayList<>();
for (Object obj : productObj) {
// 1.将每一项放入ArrayList
productIds.add((Integer) obj);
}
// 2.将ArrayList放入productCollectParam对象,完成类型转换
productCollectParam.setProductIds(productIds);
R r = productClient.productIds(productCollectParam);
解决方案2—数组类型转换
List<Object> productObj = collectMapper.selectObjs(wrapper);
// 1.将List<Object>转换成 数组
Integer[] idsArray = list.toArray(new Integer[]{});
// 2.将数组转换成List<Integer>集合
List<Integer> ids = Arrays.asList(idsArray);
// 3.创建productCollectParam对象
ProductCollectParam productCollectParam = new ProductCollectParam();
// 4.将List<Integer>放入productCollectParam对象,完成类型转换
productCollectParam.setProductIds(ids);
R productList = productClient.productIds(productCollectParam);