我先用2016.02版本的IDEA,下面代码报错:
@Override public List<ItemModel> listItem() { List<ItemDO> itemDOList = itemDOMapper.listItem(); //使用Java8的stream API List<ItemModel> itemModelList = itemDOList.stream().map(itemDO -> { ItemStockDO itemStockDO = itemStockDOMapper.selectByItemId(itemDO.getId()); ItemModel itemModel = this.convertModeFromDataObject(itemDO, itemStockDO); return itemModel; }).collect(Collectors.toList()); return itemModelList; }
于是,换到2019.01版本的IDEA,同样报错,根据idea的提示,把代码改成了:
@Override public List<ItemModel> listItem() { List<ItemDO> itemDOList = itemDOMapper.listItem(); //使用Java8的stream API List<ItemModel> itemModelList = (List<ItemModel>) itemDOList.stream().map(itemDO -> { ItemStockDO itemStockDO = itemStockDOMapper.selectByItemId(itemDO.getId()); ItemModel itemModel = this.convertModeFromDataObject(itemDO, itemStockDO); return itemModel; }).collect(Collectors.toList()); return itemModelList; }
错误消失了,但是 http://localhost:8090/item/list 获取不到商品列表,根据其他同学的提问,说是item表和item_stock表的数据不匹配,我这里的数据是匹配的,还是报错:
status | "fail" |
data | |
errCode | 10002 |
errMsg | "未知错误" |
可怜,新手,不会debug,不知道怎么排错......
我的整个项目现在是可以跑起来,也买了老师的后续优化的课程,还在学习中。我的代码没有暂时还没有搞到GitHub上,回头再搞上去。希望可以帮助到你。如果有其它需要帮忙的地方,及时跟我联系,回复我,我尽量帮助你。
我都是java.util啊 还是不行 和你一样的报错 可以把你的代码发给我吗
我来自问自答。从昨天下午快下班的时候,一直到现在,我自己把这个问题解决了。
其实,问题的主要原因可能是我在定义itemDOMapper.java文件的时候,指定方法:
List<ItemDO> listItem();
前面的List应该选List<E> (java.util)这个包,而之前可能Intelli J IDEA给出的多个List列表,我错选中了List<A> (com.sun.tools.javac.util)。进而一直导致报错。